File requests...

=?ISO-8859-1?Q?Horacio_J=2E_Pe=F1a?= (horape@compendium.com.ar)
Sat, 28 Dec 1996 19:05:40 -0300 (ARST)

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.

---1463811838-104933516-851810740=:666
Content-Type: TEXT/PLAIN; charset=ISO-8859-1
Content-Transfer-Encoding: QUOTED-PRINTABLE

Hola! (Hi!)

Here is a replacement to the ifcico/respfreq.c... It does freq responses
ala PoP (it has subdirectory searchs and templates for the answers).It's
in a very ALPHA stage...

=09=09=09=09Horacio J. Pe=F1a

---1463811838-104933516-851810740=:666
Content-Type: TEXT/PLAIN; charset=ISO-8859-1; name="respfreq.c"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.LNX.3.95.961228190540.666G@hobbit.compendium.com.ar>
Content-Description:

LyogTWFkZSBieSBFdWdlbm5lIENyb3NzZXINCiAqIA0KICogU3ViZGlyZWN0
b3J5IHNlYXJjaCBhbmQgY29uZmlndXJhYmxlIChhbGEgUG9QKSByZXNwb25z
ZXMNCiAqIGJ5IEhvcmFjaW8gSi4gUGXxYSAoaG9yYXBlQGNvbXBlbmRpdW0u
Y29tLmFyKQ0KICovDQoNCiNpbmNsdWRlIDxzeXMvdHlwZXMuaD4NCiNpbmNs
dWRlIDx1bmlzdGQuaD4NCiNpbmNsdWRlIDxzdGRsaWIuaD4NCiNpbmNsdWRl
IDxzdGRpby5oPg0KI2luY2x1ZGUgPHN0cmluZy5oPg0KI2luY2x1ZGUgPGN0
eXBlLmg+DQojaW5jbHVkZSA8c3lzL3N0YXQuaD4NCiNpZmRlZiBIQVNfUkVH
RVhfSA0KI2luY2x1ZGUgPHJlZ2V4Lmg+DQojZWxzZQ0KY2hhciAqcmVfY29t
cChjaGFyKik7DQppbnQgcmVfZXhlYyhjaGFyKik7DQojZW5kaWYNCiNpbmNs
dWRlICJkaXJlY3RvcnkuaCINCiNpbmNsdWRlICJzZXNzaW9uLmgiDQojaW5j
bHVkZSAieHV0aWwuaCINCiNpbmNsdWRlICJsdXRpbC5oIg0KI2luY2x1ZGUg
ImNvbmZpZy5oIg0KI2lmbmRlZiBOT0ZSRVFSRVBPUlQNCiNpbmNsdWRlIDx2
YXJhcmdzLmg+DQojaW5jbHVkZSAiZnRubXNnLmgiDQojZW5kaWYNCiNpbmNs
dWRlICJ2ZXJzaW9uLmgiDQoNCiNpZm5kZWYgU19JU0RJUg0KI2RlZmluZSBT
X0lTRElSKHN0X21vZGUpICAgICAgICgoKHN0X21vZGUpICYgU19JRk1UKSA9
PSBTX0lGRElSKQ0KI2VuZGlmDQojaWZuZGVmIFNfSVNSRUcNCiNkZWZpbmUg
U19JU1JFRyhzdF9tb2RlKSAgICAgICAoKChzdF9tb2RlKSAmIFNfSUZNVCkg
PT0gU19JRlJFRykNCiNlbmRpZg0KDQojZGVmaW5lIEtGUyAyDQoNCmV4dGVy
biBjaGFyICpmcmVxbmFtZTsNCmV4dGVybiBjaGFyICpsb2duYW1lOw0KDQpl
eHRlcm4gaW50IGV4ZWNzaChjaGFyKixjaGFyKixjaGFyKixjaGFyKik7DQpl
eHRlcm4gdW5zaWduZWQgbG9uZyBhdG91bChjaGFyKik7DQpleHRlcm4gdW5z
aWduZWQgbG9uZyBzZXF1ZW5jZXIodm9pZCk7DQoNCnN0YXRpYyBmaWxlX2xp
c3QgKnJlc3BmcmVxKGNoYXIqLGNoYXIqLGNoYXIqKTsNCmZpbGVfbGlzdCAq
c2VhcmNoKGNoYXIqLGNoYXIqLHRpbWVfdCxpbnQsY2hhciosaW50KTsNCnN0
YXRpYyBmaWxlX2xpc3QgKnJlc3BtYWdpYyhjaGFyKik7DQpzdGF0aWMgZmls
ZV9saXN0ICpyZXNwbGlzdChjaGFyKik7DQoNCiNpZm5kZWYgTk9GUkVRUkVQ
T1JUDQpzdHJ1Y3QgZmlsZSB7DQogICBjaGFyICAgKm5hbWU7DQogICBvZmZf
dCAgIHNpemU7DQogICB0aW1lX3QgIGRhdGU7DQogICBzdHJ1Y3QgZmlsZSAq
bmV4dDsNCiAgIH07DQoNCnN0cnVjdCBlcnIgew0KICAgY2hhciAqZXJyb3I7
DQogICBzdHJ1Y3QgZXJyICpuZXh0Ow0KICAgfTsNCg0Kc3RydWN0IHsNCiAg
IHN0cnVjdCBmaWxlICpmaXJzdDsNCiAgIHN0cnVjdCBmaWxlICpsYXN0Ow0K
ICAgfSBmb3VuZCxub3Rmb3VuZCxtYWdpY2xpc3Q7DQoNCnN0cnVjdCB7DQog
ICBzdHJ1Y3QgZXJyICpmaXJzdDsNCiAgIHN0cnVjdCBlcnIgKmxhc3Q7DQog
ICB9IGVycm9ybGlzdDsNCg0Kdm9pZCBhZGRmb3VuZCAgIChjaGFyKixvZmZf
dCx0aW1lX3QpOw0Kdm9pZCBhZGRtYWdpYyAgIChjaGFyKixvZmZfdCk7DQp2
b2lkIGFkZG5vdGZvdW5kKGNoYXIqKTsNCnZvaWQgYWRkZXJyb3IgICAoKTsN
CnZvaWQgaW5pY3JlcG9ydCh2b2lkKTsNCnZvaWQgZ2VuX3JlcG9ydChmaWxl
X2xpc3QgKiopOw0Kdm9pZCBwYXJzZWl0KGNoYXIqLGNoYXIqLGNoYXIqLG9m
Zl90LHRpbWVfdCxpbnQsbG9uZyk7DQp2b2lkIGZyZWVfYWxsKCk7DQojZW5k
aWYNCg0KZmlsZV9saXN0ICpyZXNwb25kX3dhem9vKGNoYXIqKTsNCmZpbGVf
bGlzdCAqcmVzcG9uZF93YXpvbyhmbikNCmNoYXIgKmZuOw0Kew0KCWNoYXIg
YnVmWzI1Nl07DQoJY2hhciAqbm0sKnB3LCpkdCwqcDsNCglmaWxlX2xpc3Qg
KmZsPU5VTEwsKip0bXBsOw0KCUZJTEUgKmZwOw0KDQogICAgICAgIGluaWNy
ZXBvcnQoKTsNCg0KICAgCWlmIChsb2NhbG9wdGlvbnMgJiBOT0ZSRVFTIHx8
IHB1YmRpciA9PSBOVUxMICkNCgl7DQoJCWxvZ2luZigiRmlsZSByZXF1ZXN0
cyBmb3JiaWRkZW4iKTsNCiNpZm5kZWYgTk9GUkVRUkVQT1JUDQoJCWFkZGVy
cm9yKCJFUjogZmlsZSByZXF1ZXN0cyBmb3JiaWRkZW4iKTsNCiAgICAgICAJ
ICAgICAgICBnZW5fcmVwb3J0KCZmbCk7DQojZW5kaWYNCgkJcmV0dXJuIE5V
TEw7DQoJfQ0KDQoJaWYgKGZyZXFuYW1lID09IE5VTEwpIHJldHVybiBOVUxM
Ow0KDQoJaWYgKChmcD1mb3BlbihmcmVxbmFtZSwiciIpKSA9PSBOVUxMKQ0K
CXsNCgkJbG9nZXJyKCIkY2Fubm90IG9wZW4gcmVjZWl2ZWQgd2F6b28gZnJl
cSBcIiVzXCIiLGZyZXFuYW1lKTsNCgkJdW5saW5rKGZyZXFuYW1lKTsNCgkJ
ZnJlZShmcmVxbmFtZSk7DQoJCWZyZXFuYW1lPU5VTEw7DQoJCXJldHVybiBO
VUxMOw0KCX0NCg0KCXRtcGw9JmZsOw0KCXdoaWxlIChmZ2V0cyhidWYsc2l6
ZW9mKGJ1ZiktMSxmcCkpDQoJew0KCQlubT1OVUxMOw0KCQlwdz1OVUxMOw0K
CQlkdD1OVUxMOw0KCQlwPXN0cnRvayhidWYsIiBcblxyIik7DQoJCWlmICgo
cCA9PSBOVUxMKSB8fCAoKnAgPT0gJ1wwJykpIGNvbnRpbnVlOw0KCQlubT1w
Ow0KCQlwPXN0cnRvayhOVUxMLCIgXG5cciIpOw0KCQlpZiAocCAmJiAoKnAg
PT0gJyEnKSkgcHc9cCsxOw0KCQllbHNlIGlmIChwICYmICgoKnAgPT0gJysn
KSB8fCAoKnAgPT0gJy0nKSkpIGR0PXA7DQoJCXA9c3RydG9rKE5VTEwsIiBc
blxyIik7DQoJCWlmIChwICYmICgqcCA9PSAnIScpKSBwdz1wKzE7DQoJCWVs
c2UgaWYgKHAgJiYgKCgqcCA9PSAnKycpIHx8ICgqcCA9PSAnLScpKSkgZHQ9
cDsNCgkJKnRtcGw9cmVzcGZyZXEobm0scHcsZHQpOw0KCQl3aGlsZSAoKnRt
cGwpIHRtcGw9JigoKnRtcGwpLT5uZXh0KTsNCgl9DQoNCglmY2xvc2UoZnAp
Ow0KCXVubGluayhmcmVxbmFtZSk7DQoJZnJlZShmcmVxbmFtZSk7DQoJZnJl
cW5hbWU9TlVMTDsNCglmb3IgKHRtcGw9JmZsOyp0bXBsO3RtcGw9JigoKnRt
cGwpLT5uZXh0KSkNCgl7DQoJCWRlYnVnKDEyLCJyZXNwbGlzdDogJXMiLFMo
KCp0bXBsKS0+bG9jYWwpKTsNCgl9DQojaWZuZGVmIE5PRlJFUVJFUE9SVA0K
CWdlbl9yZXBvcnQoJmZsKTsNCiNlbmRpZg0KCXJldHVybiBmbDsNCn0NCg0K
ZmlsZV9saXN0ICpyZXNwb25kX2JhcmsoY2hhciopOw0KZmlsZV9saXN0ICpy
ZXNwb25kX2JhcmsoYnVmKQ0KY2hhciAqYnVmOw0Kew0KCWNoYXIgKm5tLCpw
dywqZHQsKnA7DQoJZmlsZV9saXN0ICpmbDsNCg0KICAgCWlmIChsb2NhbG9w
dGlvbnMgJiBOT0ZSRVFTIHx8IHB1YmRpciA9PSBOVUxMICkNCgl7DQoJCWxv
Z2luZigiRmlsZSByZXF1ZXN0cyBmb3JiaWRkZW4iKTsNCiNpZm5kZWYgTk9G
UkVRUkVQT1JUDQoJCWFkZGVycm9yKCJFUjogZmlsZSByZXF1ZXN0cyBmb3Ji
aWRkZW4iKTsNCiAgICAgICAJICAgICAgICBnZW5fcmVwb3J0KCZmbCk7DQoj
ZW5kaWYNCgkJcmV0dXJuIE5VTEw7DQoJfQ0KDQoJbm09YnVmOw0KCXB3PSIi
Ow0KCWR0PSIwIjsNCgl3aGlsZSAoaXNzcGFjZSgqbm0pKSBubSsrOw0KCWZv
ciAocD1ubTsqcCAmJiAoIWlzc3BhY2UoKnApKTtwKyspOw0KCWlmICgqcCkN
Cgl7DQoJCSpwKys9J1wwJzsNCgkJZHQ9cDsNCgkJd2hpbGUgKGlzc3BhY2Uo
KmR0KSkgZHQrKzsNCgkJZm9yIChwPWR0OypwICYmICghaXNzcGFjZSgqcCkp
O3ArKyk7DQoJCWlmICgqcCkNCgkJew0KCQkJKnArKz0nXDAnOw0KCQkJcHc9
cDsNCgkJCXdoaWxlIChpc3NwYWNlKCpwdykpIHB3Kys7DQoJCQlmb3IgKHA9
cHc7KnAgJiYgKCFpc3NwYWNlKCpwKSk7cCsrKTsNCgkJCSpwPSdcMCc7DQoJ
CX0NCgl9DQoJZmw9cmVzcGZyZXEobm0scHcsZHQpOw0KI2lmbmRlZiBOT0ZS
RVFSRVBPUlQNCglnZW5fcmVwb3J0KCZmbCk7DQojZW5kaWYNCglyZXR1cm4g
Zmw7DQp9DQoNCmZpbGVfbGlzdCAqcmVzcGZyZXEobm0scHcsZHQpDQpjaGFy
ICpubSwqcHcsKmR0Ow0Kew0KCWZpbGVfbGlzdCAqZmw9TlVMTDsgLy8gNCB0
aGUgcmV0dXJuLi4uDQoJRElSICpkcDsNCglzdHJ1Y3QgZGlyZW50ICpkZTsN
CglzdHJ1Y3Qgc3RhdCBzdDsNCgljaGFyIG1hc2tbMjU2XSwqcCwqcTsNCglj
aGFyICp0bm0sKnRkaXI7DQoJdGltZV90IHVwZD0wTDsNCglpbnQgbmV3ZXI9
MSxwYXNzOw0KDQoJbG9naW5mKCJyZW1vdGUgcmVxdWVzdGVkIFwiJXNcIiAo
dXBkYXRlICVzLCBwYXNzd29yZCBcIiVzXCIpIiwNCgkJUyhubSksUyhkdCks
UyhwdykpOw0KDQoJaWYgKGR0KQ0KCXsNCgkJaWYgKCpkdCA9PSAnKycpDQoJ
CXsNCgkJCW5ld2VyPTE7DQoJCQlkdCsrOw0KCQl9DQoJCWVsc2UgaWYgKCpk
dCA9PSAnLScpDQoJCXsNCgkJCW5ld2VyPTA7DQoJCQlkdCsrOw0KCQl9DQoJ
CWVsc2UgbmV3ZXI9MTsNCgkJdXBkPWF0b3VsKGR0KTsNCgl9DQoJaWYgKG1h
Z2ljICYmICFzdHJjaHIobm0sJy8nKSkNCgl7DQoJCXRubT14c3RyY3B5KG1h
Z2ljKTsNCgkJdG5tPXhzdHJjYXQodG5tLCIvIik7DQoJCXRubT14c3RyY2F0
KHRubSxubSk7DQoJCWlmICgoc3RhdCh0bm0sJnN0KSA9PSAwKSAmJg0KCQkg
ICAgKFNfSVNSRUcoc3Quc3RfbW9kZSkpKQ0KCQl7DQoJCQlpZiAoYWNjZXNz
KHRubSxYX09LKSA9PSAwKQ0KCQkJew0KCQkJCWxvZ2luZigiRXhlY3V0ZSBy
ZXF1ZXN0Iik7DQoJCQkJcmV0dXJuIHJlc3BtYWdpYyh0bm0pOw0KCQkJCS8q
IHJlc3BtYWdpYyB3aWxsIGZyZWUodG5tKSAqLw0KCQkJfQ0KCQkJZWxzZSBp
ZiAoYWNjZXNzKHRubSxSX09LKSA9PSAwKQ0KCQkJew0KCQkJCWxvZ2luZigi
UmVmZXJlbmNlIHJlcXVlc3QiKTsNCgkJCQlyZXR1cm4gcmVzcGxpc3QodG5t
KTsNCgkJCQkvKiByZXNwbGlzdCB3aWxsIGZyZWUodG5tKSAqLw0KCQkJfQ0K
CQkJZWxzZSBmcmVlKHRubSk7DQoJCX0NCgkJZWxzZSBmcmVlKHRubSk7DQoJ
fQ0KDQoJdGRpcj14c3RyY3B5KHB1YmRpcik7DQoJaWYgKChwPXN0cnJjaHIo
bm0sJy8nKSkpDQoJew0KCQkqcCsrPSdcMCc7DQoJCXRkaXI9eHN0cmNhdCh0
ZGlyLCIvIik7DQoJCXRkaXI9eHN0cmNhdCh0ZGlyLG5tKTsNCgkJaWYgKHN0
cnN0cih0ZGlyLCIvLi4vIikpDQoJCXsNCiNpZm5kZWYgTk9GUkVRUkVQT1JU
DQoJCQlhZGRlcnJvcigiV046IGF0dGVtcHQgdG8gbGVhdmUgcmVzdHJpY3Rl
ZCBkaXJlY3RvcnkiKTsNCiNlbmRpZg0KCQkJbG9naW5mKCJhdHRlbXB0IHRv
IGxlYXZlIHJlc3RyaWN0ZWQgZGlyZWN0b3J5OiBcIiVzXCIiLHRkaXIpOw0K
CQkJZnJlZSh0ZGlyKTsNCgkJCXRkaXI9eHN0cmNweShwdWJkaXIpOw0KCQkJ
dGRpcj14c3RyY2F0KHRkaXIsIi8iKTsNCgkJfQ0KCX0NCgllbHNlIHsNCgkg
ICBmcmVlKHRkaXIpOw0KCSAgIHJldHVybihzZWFyY2gobm0scHcsdXBkLG5l
d2VyLHB1YmRpciwxKSk7IA0KCSAgIC8qIGlmIHRoZSByZXF1ZXN0IGRvbid0
IGhhdmUgYSAvIGRvIGEgcmVjdXJzaXZlIHNlYXJjaCAqLw0KCX0NCgkNCglx
PW1hc2s7DQojaWZkZWYgUkVHRVhfTkVFRF9DQVJFVA0KCSpxKys9J14nOw0K
I2VuZGlmDQoJd2hpbGUgKCgqcCkgJiYgKHEgPCAobWFzaytzaXplb2YobWFz
ayktNCkpKQ0KCXsNCgkJc3dpdGNoICgqcCkNCgkJew0KCQljYXNlICdcXCc6
CSpxKys9J1xcJzsgKnErKz0nXFwnOyBicmVhazsNCgkJY2FzZSAnPyc6CSpx
Kys9Jy4nOyBicmVhazsNCgkJY2FzZSAnLic6CSpxKys9J1xcJzsgKnErKz0n
Lic7IGJyZWFrOw0KCQljYXNlICcrJzoJKnErKz0nXFwnOyAqcSsrPScrJzsg
YnJlYWs7DQoJCWNhc2UgJyonOgkqcSsrPScuJzsgKnErKz0nKic7IGJyZWFr
Ow0KCQlkZWZhdWx0OgkqcSsrPSpwOyBicmVhazsNCgkJfQ0KCQlwKys7DQoJ
fQ0KCSpxKys9JyQnOw0KCSpxPSdcMCc7DQoNCglpZiAoKGRwPW9wZW5kaXIo
dGRpcikpID09IE5VTEwpDQoJew0KCSAgIGZvciAocD10ZGlyOypwO3ArKykg
KnA9dG9sb3dlcigqcCk7DQoJICAgZHA9b3BlbmRpcih0ZGlyKTsNCgl9DQoJ
aWYgKGRwID09IE5VTEwpDQoJew0KCSAgIGxvZ2VycigiJGNhbm5vdCBvcGVu
ZGlyIFwiJXNcIiIsdGRpcik7DQojaWZuZGVmIE5PRlJFUVJFUE9SVA0KCSAg
IGFkZGVycm9yKCJFUjogQ291bGQgbm90IG9wZW4gZGlyZWN0b3J5IFwiJXNc
IiIsdGRpcik7DQojZW5kaWYNCgkgICBmcmVlKHRkaXIpOw0KCSAgIHJldHVy
biBOVUxMOw0KCX0NCg0KCWZvciAocGFzcz0wOyhwYXNzIDwgMikgJiYgKGZs
ID09IE5VTEwpO3Bhc3MrKykNCgl7DQoJICAgaWYgKHBhc3MgPiAwKQ0KCSAg
ICAgew0KCQlmb3IgKHA9bWFzazsqcDtwKyspICpwPXRvbG93ZXIoKnApOw0K
CQlyZXdpbmRkaXIoZHApOw0KCSAgICAgfQ0KCSAgIGRlYnVnKDEyLCJ0cnkg
c2VhcmNoIG1hc2s6IFwiJXNcIiIsbWFzayk7DQoJICAgcmVfY29tcChtYXNr
KTsNCg0KCSAgIHdoaWxlICgoZGU9cmVhZGRpcihkcCkpKQ0KCSAgICAgaWYg
KHJlX2V4ZWMoZGUtPmRfbmFtZSkpDQoJICAgICB7DQoJCWRlYnVnKDEyLCJt
YXRjaGluZyBmaWxlIFwiJXNcIiIsZGUtPmRfbmFtZSk7DQoJCXRubT14c3Ry
Y3B5KHRkaXIpOw0KCQl0bm09eHN0cmNhdCh0bm0sIi8iKTsNCgkJdG5tPXhz
dHJjYXQodG5tLGRlLT5kX25hbWUpOw0KCQkNCgkJaWYgKChzdGF0KHRubSwm
c3QpID09IDApICYmDQoJCSAgICAoU19JU1JFRyhzdC5zdF9tb2RlKSkgJiYN
CgkJICAgIChhY2Nlc3ModG5tLFJfT0spID09IDApICYmDQoJCSAgICAoKHVw
ZCA9PSAwTCkgfHwNCgkJICAgICAoKG5ld2VyKSAmJiAoc3Quc3RfbXRpbWUg
PiB1cGQpKSB8fA0KCQkgICAgICgoIW5ld2VyKSAmJiAoc3Quc3RfbXRpbWUg
PD0gdXBkKSkpKQ0KCQkgIHsNCiNpZm5kZWYgTk9GUkVRUkVQT1JUDQoJCSAg
ICAgYWRkZm91bmQoZGUtPmRfbmFtZSxzdC5zdF9zaXplLHN0LnN0X210aW1l
KTsNCiNlbmRpZg0KCQkgICAgIGFkZF9saXN0KCZmbCx0bm0sZGUtPmRfbmFt
ZSwwLDBMLE5VTEwsMSk7DQoJCSAgfQ0KCQllbHNlDQoJCSAgew0KI2lmbmRl
ZiBOT0ZSRVFSRVBPUlQNCgkJICAgICBhZGRlcnJvcigiRVI6IE5vdCBzZW5k
aW5nIFwiJXNcIiAoY291bGQgbm90IGFjY2VzcyBvciBkb2VzIG5vdCBtZWV0
IHVwZGF0ZSBjb25kaXRpb24pIiwNCgkJCSAgICAgIGRlLT5kX25hbWUpOw0K
I2VuZGlmDQoJCSAgfQ0KCQlmcmVlKHRubSk7DQoJICAgICB9DQoJfQ0KCQ0K
ICAgDQoJaWYgKGZsID09IE5VTEwpDQoJew0KI2lmbmRlZiBOT0ZSRVFSRVBP
UlQNCgkJYWRkbm90Zm91bmQobm0pOw0KI2VuZGlmDQoJfQ0KDQoJZnJlZSh0
ZGlyKTsNCgljbG9zZWRpcihkcCk7DQoJcmV0dXJuIGZsOw0KfQ0KDQojZGVm
aW5lIE1BWFJFQ1VSU0UgNQ0Kc3RhdGljIGludCByZWN1cnNlPTA7DQoNCmZp
bGVfbGlzdCAqcmVzcGxpc3QobGlzdGZuKSAvKiBtdXN0IGZyZWUobGlzdGZu
KSBiZWZvcmUgZXhpdCAqLw0KY2hhciAqbGlzdGZuOw0Kew0KCUZJTEUgKmZw
Ow0KCWNoYXIgYnVmWzI1Nl0sKnA7DQoJZmlsZV9saXN0ICpmbD1OVUxMLCoq
cGZsOw0KDQoJaWYgKCsrcmVjdXJzZSA+IE1BWFJFQ1VSU0UpDQoJew0KCQls
b2dlcnIoIkV4Y2Vzc2l2ZSByZWN1cnNpb24gaW4gZmlsZSBsaXN0cyBmb3Ig
XCIlc1wiIiwNCgkJCVMobGlzdGZuKSk7DQojaWZuZGVmIE5PRlJFUVJFUE9S
VA0KCQlhZGRlcnJvcigiRVI6IEV4ZXNzaXZlIHJlY3Vyc2lvbiBmb3IgcmVm
ZXJlbmNlIFwiJXNcIiwgY29udGFjdCBzeXNvcCIsDQoJCQlsaXN0Zm4pOw0K
I2VuZGlmDQoJCXJlY3Vyc2U9MDsNCgkJZnJlZShsaXN0Zm4pOw0KCQlyZXR1
cm4gTlVMTDsNCgl9DQoNCglwZmw9JmZsOw0KCWlmICgoZnA9Zm9wZW4obGlz
dGZuLCJyIikpID09IE5VTEwpDQoJew0KCQlsb2dlcnIoIiRjYW5ub3Qgb3Bl
biBmaWxlIGxpc3QgXCIlc1wiIixsaXN0Zm4pOw0KI2lmbmRlZiBOT0ZSRVFS
RVBPUlQNCgkJYWRkZXJyb3IoIkVSOiBDb3VsZCBub3Qgb3BlbiByZWZlcmVu
Y2UgZmlsZSBcIiVzXCIsIGNvbnRhY3Qgc3lzb3AiLA0KCQkJbGlzdGZuKTsN
CiNlbmRpZg0KCQlmcmVlKGxpc3Rmbik7DQoJCXJlY3Vyc2UtLTsNCgkJcmV0
dXJuIE5VTEw7DQoJfQ0KCXdoaWxlKGZnZXRzKGJ1ZixzaXplb2YoYnVmKS0x
LGZwKSkNCgl7DQoJCWlmICgocD1zdHJjaHIoYnVmLCcjJykpKSAqcD0nXDAn
Ow0KCQlpZiAoKHA9c3RydG9rKGJ1ZiwiIFx0XG5cciIpKSkNCgkJew0KCQkJ
KnBmbD1yZXNwZnJlcShwLE5VTEwsTlVMTCk7DQoJCQl3aGlsZSAoKnBmbCkg
cGZsPSYoKCpwZmwpLT5uZXh0KTsNCgkJfQ0KCX0NCglmY2xvc2UoZnApOw0K
DQoJZnJlZShsaXN0Zm4pOw0KCXJlY3Vyc2UtLTsNCglyZXR1cm4gZmw7DQp9
DQoNCmZpbGVfbGlzdCAqcmVzcG1hZ2ljKGNtZCkgLyogbXVzdCBmcmVlKGNt
ZCkgYmVmb3JlIGV4aXQgKi8NCmNoYXIgKmNtZDsNCnsNCglzdHJ1Y3Qgc3Rh
dCBzdDsNCgljaGFyIGNtZGJ1ZlsyNTZdOw0KCWNoYXIgdG1wZm5bTF90bXBu
YW1dOw0KCWNoYXIgcmVtbmFtZVszMl0sKnAsKnEsKno7DQoJaW50IGVzY2Fw
ZWQ7DQoJZmlsZV9saXN0ICpmbD1OVUxMOw0KDQoJZGVidWcoMTIsInJlc3Bv
bmQgdG8gXCJtYWdpY1wiIGZpbGUgcmVxdWVzdCBcIiVzXCIiLFMoY21kKSk7
DQoJKHZvaWQpdG1wbmFtKHRtcGZuKTsNCglpZiAoKHA9c3RycmNocihjbWQs
Jy8nKSkpIHArKzsNCgllbHNlIHA9Y21kOw0KCXN0cm5jcHkocmVtbmFtZSxw
LHNpemVvZihyZW1uYW1lKS0xKTsNCglyZW1uYW1lW3NpemVvZihyZW1uYW1l
KS0xXT0nXDAnOw0KCWlmIChyZW1vdGUtPmFkZHItPm5hbWUgPT0gTlVMTCkg
cmVtb3RlLT5hZGRyLT5uYW1lPXhzdHJjcHkoIlN5c29wIik7DQoJc3RybmNw
eShjbWRidWYsY21kLHNpemVvZihjbWRidWYpLTIpOw0KCWNtZGJ1ZltzaXpl
b2YoY21kYnVmKS0yXT0nXDAnOw0KCXE9Y21kYnVmK3N0cmxlbihjbWRidWYp
Ow0KCXo9Y21kYnVmK3NpemVvZihjbWRidWYpLTI7DQoJKnErKz0nICc7DQoJ
ZXNjYXBlZD0wOw0KCWZvciAocD1hc2Nmbm9kZShyZW1vdGUtPmFkZHIsMHg3
Zik7ICpwICYmIChxIDwgeik7IHArKykNCgl7DQoJCWlmIChlc2NhcGVkKQ0K
CQl7DQoJCQllc2NhcGVkPTA7DQoJCX0NCgkJZWxzZSBzd2l0Y2ggKCpwKQ0K
CQl7DQoJCWNhc2UgJ1xcJzoJZXNjYXBlZD0xOyBicmVhazsNCgkJY2FzZSAn
XCcnOg0KCQljYXNlICdgJzoNCgkJY2FzZSAnIic6DQoJCWNhc2UgJygnOg0K
CQljYXNlICcpJzoNCgkJY2FzZSAnPCc6DQoJCWNhc2UgJz4nOg0KCQljYXNl
ICd8JzoNCgkJY2FzZSAnOyc6DQoJCWNhc2UgJyQnOg0KCQkJCSpxKys9J1xc
JzsgYnJlYWs7DQoJCX0NCgkJKnErKz0qcDsNCgl9DQoJKnErKz0nXDAnOw0K
CWlmIChleGVjc2goY21kYnVmLCIvZGV2L251bGwiLHRtcGZuLGxvZ25hbWUp
KQ0KCXsNCgkJbG9nZXJyKCJlcnJvciBleGVjdXRpbmcgbWFnaWMgZmlsZSBy
ZXF1ZXN0Iik7DQojaWZuZGVmIE5PRlJFUVJFUE9SVA0KCQlhZGRlcnJvcigi
RVI6IE1hZ2ljIGNvbW1hbmQgXCIlc1wiIGV4ZWN1dGlvbiBmYWlsZWQiLGNt
ZCk7DQojZW5kaWYNCgkJdW5saW5rKHRtcGZuKTsNCgl9DQoJZWxzZQ0KCXsN
CgkJaWYgKHN0YXQodG1wZm4sJnN0KSA9PSAwKQ0KCQl7DQoJCQlhZGRfbGlz
dCgmZmwsdG1wZm4scmVtbmFtZSxLRlMsMEwsTlVMTCwxKTsNCiNpZm5kZWYg
Tk9GUkVRUkVQT1JUDQoJCQlhZGRtYWdpYyhjbWQsKHVuc2lnbmVkIGxvbmcp
c3Quc3Rfc2l6ZSk7DQojZW5kaWYNCgkJCWRlYnVnKDEyLCJtYWdpYyByZXNw
IGxpc3Q6IFwiJXNcIiAtPiBcIiVzXCIiLA0KCQkJCVMoZmwtPmxvY2FsKSxT
KGZsLT5yZW1vdGUpKTsNCgkJfQ0KCQllbHNlDQoJCXsNCgkJCWxvZ2Vycigi
JGNhbm5vdCBzdGF0KCkgbWFnaWMgc3Rkb3V0IFwiJXNcIiIsdG1wZm4pOw0K
I2lmbmRlZiBOT0ZSRVFSRVBPUlQNCgkJCWFkZGVycm9yKCJFUjogQ291bGQg
bm90IGdldCBtYWdpYyBjb21tYW5kIG91dHB1dCwgY29udGFjdCBzeXNvcCIp
Ow0KI2VuZGlmDQoJCX0NCgl9DQoJZnJlZShjbWQpOw0KCXJldHVybiBmbDsN
Cn0NCg0KI2lmbmRlZiBOT0ZSRVFSRVBPUlQNCg0Kdm9pZCBnZW5fcmVwb3J0
KGZsKQ0KZmlsZV9saXN0ICoqZmw7DQp7DQogICBGSUxFICpmcCwqY2ZnOw0K
ICAgY2hhciB0bXBmbltMX3RtcG5hbV07DQogICBjaGFyIHJlbW5hbWVbMTRd
Ow0KICAgbG9uZyB6ZXJvZXM9MEw7DQogICBmdG5tc2cgZm1zZzsNCiAgIGNo
YXIgKnN2bmFtZTsNCiAgIGNoYXIgYnVmWzEwMjRdLGJ1ZjJbMTAyNF07DQog
ICBsb25nIGk9MCxieXRlcz0wOw0KICAgc3RydWN0IGZpbGUgKmY7DQogICBz
dHJ1Y3QgZXJyICAqZTsNCiAgIA0KICAgaWYoIShjZmc9Zm9wZW4oIi9ldGMv
aWZtYWlsL2ZyZXEuY2ZnIiwiciIpKSkgew0KICAgICAgbG9nZXJyKCJFcnJv
ciB0cnlpbmcgdG8gb3BlbiAvZXRjL2lmbWFpbC9mcmVxLmNmZyA6KCIpOw0K
ICAgICAgcmV0dXJuOw0KICAgfQ0KICAgKHZvaWQpdG1wbmFtKHRtcGZuKTsN
CiAgIGlmICghKGZwPWZvcGVuKHRtcGZuLCJ3IikpKSB7DQogICAgICBsb2dl
cnIoIiRjYW5ub3Qgb3BlbiB0ZW1wIGZpbGUgXCIlc1wiIixTKHRtcGZuKSk7
DQogICAgICByZXR1cm47DQogICB9DQoNCiAgIGZtc2cuZmxhZ3M9RkxHX1BW
VHxGTEdfS19TOw0KICAgZm1zZy5mcm9tPWJlc3Rha2FfcyhyZW1vdGUtPmFk
ZHIpOw0KICAgc3ZuYW1lPWZtc2cuZnJvbS0+bmFtZTsNCiAgIGZtc2cuZnJv
bS0+bmFtZT0iaWZjaWNvIEZSRVEgcHJvY2Vzc29yIjsNCiAgIGRlYnVnKDEy
LCJmcm9tOiAlcyIsYXNjZm5vZGUoZm1zZy5mcm9tLDB4N2YpKTsNCiAgIGZt
c2cudG89cmVtb3RlLT5hZGRyOw0KICAgZGVidWcoMTIsInRvOiAgICVzIixh
c2Nmbm9kZShmbXNnLnRvLDB4N2YpKTsNCiAgIGZtc2cuZGF0ZT10aW1lKCh0
aW1lX3QqKU5VTEwpOw0KICAgZm1zZy5zdWJqPSJGaWxlIHJlcXVlc3Qgc3Rh
dHVzIHJlcG9ydCI7DQogICBmbXNnLm1zZ2lkX3M9TlVMTDsNCiAgIGZtc2cu
bXNnaWRfYT1OVUxMOw0KICAgZm1zZy5yZXBseV9zPU5VTEw7DQogICBmbXNn
LnJlcGx5X2E9TlVMTDsNCiAgIGZtc2cub3JpZ2luPU5VTEw7DQogICBmbXNn
LmFyZWE9TlVMTDsNCiAgICh2b2lkKWZ0bm1zZ2hkcigmZm1zZyxmcCxOVUxM
LCdmJyk7DQogICBkZWJ1ZygxMiwic3RhcnRpbmcgdGhlIGpvcm9iYXRlZCB0
aGluZyA6KSIpOw0KDQogICBidWZbMF09J1wwJzsNCiAgIGZvcig7ZmdldHMo
YnVmLDgwMCxjZmcpOykgew0KICAgICAgaWYoYnVmWzBdPT0nLycpDQoJc3dp
dGNoKGJ1ZlsxXSkgew0KCSBjYXNlICdGJzoNCiAgICAgICAgICAgZGVidWco
MTIsIi9Gb3VuZCIpOw0KCSAgIGZnZXRzKGJ1Ziw4MDAsY2ZnKTsNCgkgICBm
PWZvdW5kLmZpcnN0Ow0KCSAgIGZvcihpPTAsYnl0ZXM9MDtmO2krKyxmPWYt
Pm5leHQpIHsNCgkgICAgICBieXRlcys9Zi0+c2l6ZTsNCgkgICAgICBwYXJz
ZWl0KGJ1ZixidWYyLGYtPm5hbWUsZi0+c2l6ZSxmLT5kYXRlLGksYnl0ZXMp
Ow0KCSAgICAgIGZwdXRzKGJ1ZjIsZnApOw0KCSAgICAgIGRlYnVnKDEyLCJi
dWY6XCIlc1wiIiAsYnVmICk7DQoJICAgICAgZGVidWcoMTIsImJ1ZjI6XCIl
c1wiIixidWYyKTsNCgkgICB9DQoJICAgYnJlYWs7DQoJIGNhc2UgJ04nOg0K
ICAgICAgICAgICBkZWJ1ZygxMiwiL05vRm91bmQiKTsNCgkgICBmZ2V0cyhi
dWYsODAwLGNmZyk7DQoJICAgZm9yKGY9bm90Zm91bmQuZmlyc3Q7ZjtmPWYt
Pm5leHQpIHsNCgkgICAgICBwYXJzZWl0KGJ1ZixidWYyLGYtPm5hbWUsMCww
LDAsMCk7DQoJICAgICAgZGVidWcoMTIsImJ1ZjpcIiVzXCIiICxidWYgKTsN
CgkgICAgICBkZWJ1ZygxMiwiYnVmMjpcIiVzXCIiLGJ1ZjIpOw0KCSAgICAg
IGZwdXRzKGJ1ZjIsZnApOw0KICAgICAgCSAgIH0NCgkgICBicmVhazsNCgkg
Y2FzZSAnTSc6DQogICAgICAgICAgIGRlYnVnKDEyLCIvTWFnaWMiKTsNCgkg
ICBmZ2V0cyhidWYsODAwLGNmZyk7DQoJICAgZm9yKGY9bWFnaWNsaXN0LmZp
cnN0O2Y7Zj1mLT5uZXh0KSB7DQoJICAgICAgcGFyc2VpdChidWYsYnVmMixm
LT5uYW1lLGYtPnNpemUsMCwwLDApOw0KCSAgICAgIGRlYnVnKDEyLCJidWY6
XCIlc1wiIiAsYnVmICk7DQoJICAgICAgZGVidWcoMTIsImJ1ZjI6XCIlc1wi
IixidWYyKTsNCgkgICAgICBmcHV0cyhidWYyLGZwKTsNCgkgICB9DQoJICAg
YnJlYWs7DQoJIGNhc2UgJ0UnOg0KICAgICAgICAgICBkZWJ1ZygxMiwiL0Vy
cm9yIik7DQoJICAgZm9yKGU9ZXJyb3JsaXN0LmZpcnN0O2U7ZT1lLT5uZXh0
KSB7DQoJICAgICAgZnB1dHMoZS0+ZXJyb3IsZnApOw0KCSAgIH0NCgkgICBi
cmVhazsNCgkgZGVmYXVsdDoNCgkgICBsb2dlcnIoIkVycm9yIGluIC9ldGMv
aWZtYWlsL2ZyZXEuYzogLyVjIixidWZbMV0pOw0KCSAgIGRlYnVnKDEyLCJF
cnJvciBpbiAvZXRjL2lmbWFpbC9mcmVxLmM6IC8lYyIsYnVmWzFdKTsNCgl9
DQogICAgICBlbHNlIHsNCgkgcGFyc2VpdChidWYsYnVmMixOVUxMLDAsMCxp
LGJ5dGVzKTsNCgkgZnB1dHMoYnVmMixmcCk7DQoJIGRlYnVnKDEyLCJidWY6
XCIlc1wiIiAsYnVmICk7DQoJIGRlYnVnKDEyLCJidWYyOlwiJXNcIiIsYnVm
Mik7DQogICAgICB9DQogICB9DQoNCiAgIGZ3cml0ZSgmemVyb2VzLDEsMyxm
cCk7DQogICBmY2xvc2UoZnApOw0KICAgc3ByaW50ZihyZW1uYW1lLCIlMDhs
WC5QS1QiLHNlcXVlbmNlcigpKTsNCiAgIGFkZF9saXN0KGZsLHRtcGZuLHJl
bW5hbWUsS0ZTLDBMLE5VTEwsMCk7DQogICBmbXNnLmZyb20tPm5hbWU9c3Zu
YW1lOw0KDQogICBmcmVlX2FsbCgpOw0KfQ0KDQoNCnZvaWQgYWRkZXJyb3Io
dmFfYWxpc3QpDQp2YV9kY2wNCnsNCiAgICAgICAgc3RydWN0IGVyciBlOw0K
CXZhX2xpc3QgYXJnczsNCgljaGFyICpmbXQ7DQoJY2hhciBidWZbMTAyNF07
DQoNCgl2YV9zdGFydChhcmdzKTsNCglmbXQ9dmFfYXJnKGFyZ3MsY2hhciop
Ow0KDQoJdnNwcmludGYoYnVmLGZtdCxhcmdzKTsNCg0KICAgZS5lcnJvcj14
c3RyY3B5KGJ1Zik7DQoNCiAgIGlmKGVycm9ybGlzdC5sYXN0IT1OVUxMKSAN
CiAgICAgIGVycm9ybGlzdC5sYXN0LT5uZXh0PSZlOw0KICAgZWxzZSB7DQog
ICAgICBlcnJvcmxpc3QuZmlyc3Q9JmU7DQogICAgIH0NCiAgIGVycm9ybGlz
dC5sYXN0PSZlOw0KfQ0KDQp2b2lkIGFkZGZvdW5kICAgKG5hbWUsc2l6ZSxk
YXRlKQ0KY2hhciAgKm5hbWU7DQpvZmZfdCAgc2l6ZTsNCnRpbWVfdCBkYXRl
Ow0Kew0KICAgc3RydWN0IGZpbGUgKmY7DQogICANCiAgIGY9bWFsbG9jKHNp
emVvZihzdHJ1Y3QgZmlsZSkpOw0KICAgZi0+bmFtZT14c3RyY3B5KG5hbWUp
Ow0KICAgZi0+c2l6ZT1zaXplOw0KICAgZi0+ZGF0ZT1kYXRlOw0KICAgZi0+
bmV4dD1OVUxMOw0KICAgDQogICBpZihmb3VuZC5sYXN0IT1OVUxMKSAgew0K
ICAgICAgZm91bmQubGFzdC0+bmV4dD1mOw0KICAgfQ0KICAgZWxzZSB7DQog
ICAgICBkZWJ1ZygxMiwiZm91bmQubGFzdD09TlVMTCIpOw0KICAgICAgZm91
bmQuZmlyc3Q9ZjsNCiAgIH0NCiAgIGZvdW5kLmxhc3Q9ZjsNCn0NCg0Kdm9p
ZCBhZGRtYWdpYyAobmFtZSxzaXplKQ0KY2hhciAgKm5hbWU7DQpvZmZfdCAg
c2l6ZTsNCnsNCiAgIHN0cnVjdCBmaWxlIGY7DQoNCiAgIGYubmFtZT14c3Ry
Y3B5KG5hbWUpOw0KICAgZi5zaXplPXNpemU7DQogICBmLmRhdGU9MDsNCiAg
IGYubmV4dD1OVUxMOw0KICAgDQogICBpZihtYWdpY2xpc3QubGFzdCE9TlVM
TCkgDQogICAgICBtYWdpY2xpc3QubGFzdC0+bmV4dD0mZjsNCiAgIGVsc2Ug
ew0KICAgICAgbWFnaWNsaXN0LmZpcnN0PSZmOw0KICAgICB9DQogICBtYWdp
Y2xpc3QubGFzdD0mZjsNCn0NCg0Kdm9pZCBhZGRub3Rmb3VuZChuYW1lKQ0K
Y2hhciAgKm5hbWU7DQp7DQogICBzdHJ1Y3QgZmlsZSBmOw0KDQogICBmLm5h
bWU9eHN0cmNweShuYW1lKTsNCiAgIGYuc2l6ZT0wOw0KICAgZi5kYXRlPTA7
DQogICBmLm5leHQ9TlVMTDsNCiAgIA0KICAgaWYobm90Zm91bmQubGFzdCE9
TlVMTCkgDQogICAgICBub3Rmb3VuZC5sYXN0LT5uZXh0PSZmOw0KICAgZWxz
ZSB7DQogICAgICBub3Rmb3VuZC5maXJzdD0mZjsNCiAgICAgfQ0KICAgbm90
Zm91bmQubGFzdD0mZjsNCn0NCg0Kdm9pZCBpbmljcmVwb3J0KHZvaWQpDQp7
DQogICBmb3VuZC5maXJzdCAgICA9TlVMTDsNCiAgIGZvdW5kLmxhc3QgICAg
ID1OVUxMOw0KICAgbm90Zm91bmQuZmlyc3QgPU5VTEw7DQogICBub3Rmb3Vu
ZC5sYXN0ICA9TlVMTDsNCiAgIGVycm9ybGlzdC5maXJzdD1OVUxMOw0KICAg
ZXJyb3JsaXN0Lmxhc3QgPU5VTEw7DQp9DQojZW5kaWYNCg0KZmlsZV9saXN0
ICpzZWFyY2gobm0scHcsdXBkLG5ld2VyLHRkaXIsb3JpZykNCmNoYXIgKm5t
LCpwdywqdGRpcjsNCnRpbWVfdCB1cGQ7DQppbnQgbmV3ZXIsb3JpZzsNCnsN
CiAgIGZpbGVfbGlzdCAqZmw9TlVMTCwqKnRtZmw7DQogICBESVIgKmRpcj1O
VUxMOw0KICAgY2hhciBtYXNrWzI1Nl0sKnE9TlVMTCwqcD1OVUxMOw0KICAg
c3RydWN0IGRpcmVudCAqZGU9TlVMTDsNCiAgIGNoYXIgKnRubT1OVUxMOw0K
ICAgc3RydWN0IHN0YXQgc3Q7DQogICANCiAgIHE9bWFzazsNCiAgIHA9bm07
DQojaWZkZWYgUkVHRVhfTkVFRF9DQVJFVA0KICAgKnErKz0nXic7DQojZW5k
aWYNCiAgIHdoaWxlICgoKnApICYmIChxIDwgKG1hc2src2l6ZW9mKG1hc2sp
LTQpKSkNCiAgICAgew0KCXN3aXRjaCAoKnApDQoJICB7DQoJICAgY2FzZSAn
XFwnOgkqcSsrPSdcXCc7ICpxKys9J1xcJzsgYnJlYWs7DQoJICAgY2FzZSAn
Pyc6CSpxKys9Jy4nOyBicmVhazsNCgkgICBjYXNlICcuJzoJKnErKz0nXFwn
OyAqcSsrPScuJzsgYnJlYWs7DQoJICAgY2FzZSAnKyc6CSpxKys9J1xcJzsg
KnErKz0nKyc7IGJyZWFrOw0KCSAgIGNhc2UgJyonOgkqcSsrPScuJzsgKnEr
Kz0nKic7IGJyZWFrOw0KCSAgIGRlZmF1bHQ6CSpxKys9KnA7IGJyZWFrOw0K
CSAgfQ0KCXArKzsNCiAgICAgfQ0KICAgKnErKz0nJCc7DQogICAqcT0nXDAn
Ow0KICAgcmVfY29tcChtYXNrKTsNCiAgIA0KICAgaWYoKGRpcj1vcGVuZGly
KHRkaXIpKSA9PSBOVUxMKSANCiAgICAgIHJldHVybiBOVUxMOw0KDQogICB0
bWZsPSZmbDsNCiAgIGRlYnVnKDEyLCJTZWFyY2hpbmcgXCIlc1wiIGluIFwi
JXNcIiIsbWFzayx0ZGlyKTsNCiAgIGZvcig7KGRlPXJlYWRkaXIoZGlyKSk7
KSB7DQogICAgICB0bm09eHN0cmNweSh0ZGlyKTsNCiAgICAgIHRubT14c3Ry
Y2F0KHRubSwiLyIpOw0KICAgICAgdG5tPXhzdHJjYXQodG5tLGRlLT5kX25h
bWUpOw0KICAgICAgaWYoZGUtPmRfbmFtZVswXT09Jy4nKQ0KCWNvbnRpbnVl
Ow0KICAgICAgc3RhdCh0bm0sJnN0KTsNCiAgICAgIGlmKFNfSVNESVIoc3Qu
c3RfbW9kZSkpIHsNCgkgKnRtZmw9c2VhcmNoKG5tLHB3LHVwZCxuZXdlcix0
bm0sMCk7DQoJIHdoaWxlICgqdG1mbCkgdG1mbD0mKCgqdG1mbCktPm5leHQp
Ow0KCSBmcmVlKHRubSk7DQoJIGNvbnRpbnVlOw0KICAgICAgfQ0KICAgICAg
aWYoIXJlX2V4ZWMoZGUtPmRfbmFtZSkpDQoJY29udGludWU7IA0KICAgICAg
ZGVidWcoMTIsIm1hdGNoaW5nIGZpbGUgXCIlc1wiIixkZS0+ZF9uYW1lKTsN
CiAgICAgIGlmKCEgKChTX0lTUkVHKHN0LnN0X21vZGUpKSAmJg0KCSAgIChh
Y2Nlc3ModG5tLFJfT0spID09IDApICYmDQoJICAgICggKHVwZCA9PSAwTCkg
fHwNCgkgICAgICgobmV3ZXIpICYmIChzdC5zdF9tdGltZSA+IHVwZCkpIHx8
DQoJICAgICAoKCFuZXdlcikmJiAoc3Quc3RfbXRpbWUgPD0gdXBkKSkpKSkg
ew0KI2lmbmRlZiBOT0ZSRVFSRVBPUlQNCgkgYWRkZXJyb3IoIkVSOiBOb3Qg
c2VuZGluZyBcIiVzXCIgKGNvdWxkIG5vdCBhY2Nlc3Mgb3IgZG9lc24ndCBt
ZWV0IHVwZGF0ZSBjb25kaXRpb24pIiwNCgkJCSAgIGRlLT5kX25hbWUpOw0K
I2VuZGlmDQoJIGNvbnRpbnVlOw0KCSB9DQojaWZuZGVmIE5PRlJFUVJFUE9S
VA0KICAgICAgYWRkZm91bmQoZGUtPmRfbmFtZSwob2ZmX3Qpc3Quc3Rfc2l6
ZSxzdC5zdF9tdGltZSk7DQojZW5kaWYNCiAgICAgIGFkZF9saXN0KCZmbCx0
bm0sZGUtPmRfbmFtZSwwLDBMLE5VTEwsMSk7DQogICB9DQojaWZuZGVmIE5P
RlJFUVJFUE9SVA0KICAgaWYoZmw9PU5VTEwmJm9yaWcpDQoJIGFkZG5vdGZv
dW5kKG5tKTsNCiNlbmRpZiAgICAgDQogICBjbG9zZWRpcihkaXIpOw0KcmV0
dXJuKGZsKTsNCn0NCg0Kdm9pZCBwYXJzZWl0KGJ1ZixidWYyLG5hbWUsc2l6
LGRhdCxmaWxlc2NuLGJ5dGUpDQpjaGFyKiBidWY7DQpjaGFyKiBidWYyOw0K
Y2hhciogbmFtZTsNCm9mZl90IHNpejsNCnRpbWVfdCBkYXQ7DQppbnQgZmls
ZXNjbjsNCmxvbmcgYnl0ZTsNCnsNCiAgIGludCBpPTAsaj0wLGs9MDsNCiAg
IGNoYXIgY21kWzEwMF07DQogICBzdHJ1Y3QgdG0gdDsNCiAgIA0KICAgY2hh
ciBzaXplWzEyXTsNCiAgIGNoYXIgZGF0ZVs5XTsNCiAgIGNoYXIgZmlsZXNj
bnRbNl07DQogICBjaGFyIGJ5dGVzWzEyXTsNCiAgIA0KICAgc2l6Lz0xMDI0
O2J5dGUvPTEwMjQ7DQogICBpZihzaXo+MTAwMDAwMCkgICBzcHJpbnRmKHNp
emUgLCIlMWxkLiUwM2xkLiUwM2xkIixzaXogLzEwMDAwMDAsKHNpeiAvMTAw
MCklMTAwMCxzaXogJTEwMDApOw0KICAgZWxzZSBpZihzaXo+MTAwMCkgc3By
aW50ZihzaXplICwiICAlM2xkLiUwM2xkIiAgICAsc2l6IC8xMDAwICAgLHNp
eiAlMTAwMCk7DQogICBlbHNlICAgICAgICAgICAgICBzcHJpbnRmKHNpemUg
LCIgICAgICAlM2xkIiAgICAgICxzaXogKTsNCiAgIGlmKGJ5dGU+MTAwMDAw
MCkgIHNwcmludGYoYnl0ZXMsIiUxbGQuJTAzbGQuJTAzbGQiLGJ5dGUvMTAw
MDAwMCwoYnl0ZS8xMDAwKSUxMDAwLGJ5dGUlMTAwMCk7DQogICBlbHNlIGlm
KGJ5dGU+MTAwMClzcHJpbnRmKGJ5dGVzLCIgICUzbGQuJTAzbGQiICAgICxi
eXRlLzEwMDAgICAsYnl0ZSAlMTAwMCk7DQogICBlbHNlICAgICAgICAgICAg
ICBzcHJpbnRmKGJ5dGVzLCIgICAgICAlM2xkIiAgICAgICxieXRlKTsNCiAg
IHNwcmludGYoZmlsZXNjbnQsIiVkIixmaWxlc2NuKTsNCg0KICAgbWVtY3B5
KCZ0LGxvY2FsdGltZSgmZGF0KSxzaXplb2Yoc3RydWN0IHRtKSk7DQogICBz
cHJpbnRmKGRhdGUsIiUwNGQlMDJkJTAyZCIsMTkwMCt0LnRtX3llYXIsdC50
bV9tb24rMSx0LnRtX21kYXkpOw0KDQogICBmb3IoaT0wLGs9MDtpPDEwMDAm
Jms8MTAwMCYmYnVmW2ldO2krKykgew0KICAgICAgaWYoYnVmW2ldIT0nJCcp
DQoJYnVmMltrKytdPWJ1ZltpXTsNCiAgICAgIGVsc2Ugew0KCSBmb3Ioaj0w
LGkrKztqPDEwMCYmIWlzc3BhY2UoYnVmW2ldKTtqKyssaSsrKQ0KCSAgIGNt
ZFtqXT1idWZbaV07DQoJIGNtZFtqXT0wOw0KCSBpZighc3RybmNtcChjbWQs
ImZpbGVzaXplIiw4KSkgew0KCSAgICBzcHJpbnRmKCZidWYyW2tdLCIlOXMi
LHNpemUpOw0KCSAgICBrKz05Ow0KCSAgICBjb250aW51ZTsNCgkgfQ0KCSBp
Zighc3RybmNtcChjbWQsImZpbGVuYW1lIiw4KSkgew0KCSAgICBzcHJpbnRm
KCZidWYyW2tdLCIlcyIsbmFtZSk7DQoJICAgIGsrPXN0cmxlbihuYW1lKTsN
CgkgICAgY29udGludWU7DQoJIH0NCgkgaWYoIXN0cm5jbXAoY21kLCJmaWxk
YXRlIiw3KSkgew0KCSAgICBzcHJpbnRmKCZidWYyW2tdLCIlOHMiLGRhdGUp
Ow0KCSAgICBrKz04Ow0KCSAgICBjb250aW51ZTsNCgkgfQ0KCSBpZighc3Ry
bmNtcChjbWQsImZpbGVzY250Iiw4KSkgew0KCSAgICBzcHJpbnRmKCZidWYy
W2tdLCIlcyIsZmlsZXNjbnQpOw0KCSAgICBrKz1zdHJsZW4oZmlsZXNjbnQp
Ow0KCSAgICBjb250aW51ZTsNCgkgfQ0KCSBpZighc3RybmNtcChjbWQsInRv
dHNpemUiLDcpKSB7DQoJICAgIHNwcmludGYoJmJ1ZjJba10sIiVzIixieXRl
cyk7DQoJICAgIGsrPXN0cmxlbihieXRlcyk7DQoJICAgIGNvbnRpbnVlOw0K
CSB9DQogCSBsb2dlcnIoIk5vIHJlY29ub2NpZG86IFwiJCVzXCIiLGNtZCk7
DQogICAgICB9DQogICB9DQogICBidWYyW2tdPTA7DQp9DQoNCnZvaWQgZnJl
ZV9hbGwodm9pZCkNCnsNCg0KICAgc3RydWN0IGVyciAqZXIsKmVuZXh0Ow0K
ICAgc3RydWN0IGZpbGUgKmYsKmZuZXh0Ow0KICAgDQogICBlcnJvcmxpc3Qu
bGFzdD1OVUxMOw0KICAgZm91bmQubGFzdD1OVUxMOw0KICAgbm90Zm91bmQu
bGFzdD1OVUxMOw0KICAgbWFnaWNsaXN0Lmxhc3Q9TlVMTDsNCiAgIA0KICAg
Zm9yKGVyPWVycm9ybGlzdC5maXJzdDtlcjtlcj1lbmV4dCkgew0KICAgICAg
ZW5leHQ9ZXItPm5leHQ7DQogICAgICBmcmVlKGVyLT5lcnJvcik7DQogICAg
ICBmcmVlKGVyKTsNCiAgIH0NCiAgIA0KICAgZm9yKGY9Zm91bmQuZmlyc3Q7
ZjtmPWZuZXh0KSB7DQogICAgICBmbmV4dD1mLT5uZXh0Ow0KICAgICAgZnJl
ZShmLT5uYW1lKTsNCiAgICAgIGZyZWUoZik7DQogICB9DQogICBmb3IoZj1u
b3Rmb3VuZC5maXJzdDtmO2Y9Zm5leHQpIHsNCiAgICAgIGZuZXh0PWYtPm5l
eHQ7DQogICAgICBmcmVlKGYtPm5hbWUpOw0KICAgICAgZnJlZShmKTsNCiAg
IH0NCiAgIGZvcihmPW1hZ2ljbGlzdC5maXJzdDtmO2Y9Zm5leHQpIHsNCiAg
ICAgIGZuZXh0PWYtPm5leHQ7DQogICAgICBmcmVlKGYtPm5hbWUpOw0KICAg
ICAgZnJlZShmKTsNCiAgIH0NCn0NCg==
---1463811838-104933516-851810740=:666
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="freq.cfg"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.LNX.3.95.961228190540.666H@hobbit.compendium.com.ar>
Content-Description:

SGkgVGhlcmUsDQ0KDQ0KV2UndmUgZ290IHlvdXIgZmlsZXJlcXVlc3QuIFRo
ZSBmb2xsb3dpbmcgaGFwcGVuZWQ6DQ0KDQ0KU2l6ZSAgICAgICAgICBGaWxl
IGRhdGUgIEZpbGUgTmFtZQ0NCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQ0NCi9GT1VORA0NCiRmaWxlc2l6ZSBrYiAgICRmaWxkYXRlICAk
ZmlsZW5hbWUgDQ0KL01BR0lDDQ0KU2NyaXB0IGV4ZWN1dGVkIC0tLS0tLT4g
ICRmaWxlbmFtZSAoYW5zd2VyIGlzICRmaWxlc2l6ZSBLYnl0ZXMgbG9uZykN
DQovTk9URk9VTkQNDQpXZSBjb3VsZCBub3QgZmluZCAtLS0tPiAgJGZpbGVu
YW1lDQ0KL0VSUk9SDQ0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tDQ0KDQ0KWW91J3ZlIGdvdCBhIHRvdGFsIG9mICRmaWxlc2NudCBmaWxl
cywgdG90YWxsaW5nICRmaWxlc2l6ZSBLYnl0ZXMuDQ0KDQ0KSXQgaGFzIGJl
ZW4gYSBwbGVhc3VyZSB0byByZXNwb25kIHRvIHRoaXMgcmVxdWVzdC4NDQoN
DQpNZXNzYWdlIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5IGlmY2ljbyAy
LjguDQ0K
---1463811838-104933516-851810740=:666--