Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 19 Jul 1998 20:25:44 +0400 (MSD)
From:      Maxim Bolotin <max@rsu.ru>
To:        Mike Smith <mike@smith.net.au>
Cc:        Oleg Sharoiko <os@rsu.ru>, MIHIRA Sanpei Yoshiro <sanpei@yy.cs.keio.ac.jp>, "Randal S. Masutani" <randal@comtest.com>, hackers@FreeBSD.ORG
Subject:   cs89x0 driver for 2.2.7 RELEASE
Message-ID:  <Pine.BSF.3.96.980719201938.25782A-300000@altos.rnd.runnet.ru>

next in thread | raw e-mail | index | archive | help
  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.
  Send mail to mime@docserver.cac.washington.edu for more info.

--0-1615265065-900865544=:25782
Content-Type: TEXT/PLAIN; charset=US-ASCII

Hi!

Here's the latest version of cs89x0 driver. There're
if_media and PNP support. I hope it'll be included in
2.2.7 RELEASE.

	Max.
-
Rostov State University   Computer Center
Rostov-on-Don, +7 (8632) 285794 or 357476
Russia, RUNNet, MAB1-RIPE      max@rsu.ru




--0-1615265065-900865544=:25782
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="if_cs.c"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.BSF.3.96.980719202544.25782B@altos.rnd.runnet.ru>
Content-Description: /sys/i386/isa/if_cs.c

LyoNCiAqIENvcHlyaWdodCAoYykgMTk5NywxOTk4IE1heGltIEJvbG90aW4g
YW5kIE9sZWcgU2hhcm9pa28uDQogKiBBbGwgcmlnaHRzIHJlc2VydmVkLg0K
ICoNCiAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dA0KICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zDQogKiBhcmUgbWV0Og0KICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQNCiAqICAgIG5vdGljZSB1bm1vZGlmaWVkLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucywgYW5kIHRoZSBmb2xsb3dpbmcNCiAqICAgIGRpc2NsYWltZXIu
DQogKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodA0KICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQ0KICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4N
CiAqDQogKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRI
T1IgQU5EIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EDQogKiBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUNCiAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFDQogKiBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBBVVRIT1IgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRQ0KICogRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwNCiAqIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTDQogKiBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikNCiAq
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUDQogKiBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZDQogKiBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GDQogKiBTVUNIIERBTUFHRS4NCiAqDQogKi8NCg0KLyoNCiAqICRJZDog
aWZfY3MuYyx2IDEuNyAxOTk4LzA3LzE5IDE2OjAxOjIzIHJvb3QgRXhwIHJv
b3QgJA0KICoNCiAqIERldmljZSBkcml2ZXIgZm9yIENyeXN0YWwgU2VtaWNv
bmR1Y3RvciBDUzg5MjAgYmFzZWQgZXRoZXJuZXQNCiAqICAgYWRhcHRlcnMu
IEJ5IE1heGltIEJvbG90aW4gYW5kIE9sZWcgU2hhcm9pa28sIDI3LUFwcmls
LTE5OTcNCiAqLw0KDQovKiAjZGVmaW5lCSBDU19ERUJVRyAqLw0KI2luY2x1
ZGUgImNzLmgiDQojaW5jbHVkZSAiYnBmaWx0ZXIuaCINCg0KI2luY2x1ZGUg
PHN5cy9wYXJhbS5oPg0KI2luY2x1ZGUgPHN5cy9zeXN0bS5oPg0KI2luY2x1
ZGUgPHN5cy9jb25mLmg+DQojaW5jbHVkZSA8c3lzL2Vycm5vLmg+DQojaW5j
bHVkZSA8c3lzL2lvY3RsLmg+DQojaW5jbHVkZSA8c3lzL2tlcm5lbC5oPg0K
I2luY2x1ZGUgPHN5cy9tYnVmLmg+DQojaW5jbHVkZSA8c3lzL3NvY2tldC5o
Pg0KI2luY2x1ZGUgPHN5cy9zeXNsb2cuaD4NCg0KI2luY2x1ZGUgPG5ldC9p
Zi5oPg0KI2luY2x1ZGUgPG5ldC9pZl9kbC5oPg0KI2luY2x1ZGUgPG5ldC9p
Zl9taWIuaD4NCiNpbmNsdWRlIDxuZXQvaWZfbWVkaWEuaD4NCiNpbmNsdWRl
IDxuZXQvaWZfdHlwZXMuaD4NCg0KI2lmZGVmIElORVQNCiNpbmNsdWRlIDxu
ZXRpbmV0L2luLmg+DQojaW5jbHVkZSA8bmV0aW5ldC9pbl9zeXN0bS5oPg0K
I2luY2x1ZGUgPG5ldGluZXQvaW5fdmFyLmg+DQojaW5jbHVkZSA8bmV0aW5l
dC9pcC5oPg0KI2luY2x1ZGUgPG5ldGluZXQvaWZfZXRoZXIuaD4NCiNlbmRp
Zg0KDQojaWZkZWYgSVBYDQojaW5jbHVkZSA8bmV0aXB4L2lweC5oPg0KI2lu
Y2x1ZGUgPG5ldGlweC9pcHhfaWYuaD4NCiNlbmRpZg0KDQojaWZkZWYgTlMN
CiNpbmNsdWRlIDxuZXRucy9ucy5oPg0KI2luY2x1ZGUgPG5ldG5zL25zX2lm
Lmg+DQojZW5kaWYNCg0KI2lmIE5CUEZJTFRFUiA+IDANCiNpbmNsdWRlIDxu
ZXQvYnBmLmg+DQojaW5jbHVkZSA8bmV0L2JwZmRlc2MuaD4NCiNlbmRpZg0K
DQojaW5jbHVkZSA8bWFjaGluZS9jbG9jay5oPg0KI2luY2x1ZGUgPG1hY2hp
bmUvbWRfdmFyLmg+DQoNCiNpbmNsdWRlIDxpMzg2L2lzYS9pc2FfZGV2aWNl
Lmg+DQojaW5jbHVkZSA8aTM4Ni9pc2EvaWN1Lmg+DQojaW5jbHVkZSA8aTM4
Ni9pc2EvaWZfY3NyZWcuaD4NCg0KI2luY2x1ZGUgInBucC5oIg0KDQojaWYg
TlBOUCA+IDANCiNpbmNsdWRlIDxpMzg2L2lzYS9wbnAuaD4NCiNlbmRpZg0K
DQojaWZkZWYgIENTX1VTRV82NEtfRE1BDQojZGVmaW5lIENTX0RNQV9CVUZG
RVJfU0laRSA2NTUzNg0KI2Vsc2UNCiNkZWZpbmUgQ1NfRE1BX0JVRkZFUl9T
SVpFIDE2Mzg0DQojZW5kaWYNCg0KI2lmbmRlZiBDU19XQUlUX05FWFRfUEFD
S0VUDQojZGVmaW5lCUNTX1dBSVRfTkVYVF9QQUNLRVQgNTcwDQojZW5kaWYN
Cg0KLyoNCiAqIGNzX3NvZnRjOiBwZXIgbGluZSBpbmZvIGFuZCBzdGF0dXMN
CiAqLw0Kc3RhdGljIHN0cnVjdCBjc19zb2Z0YyB7DQoNCiAgICAgICAgLyog
RXRoZXJuZXQgY29tbW9uIGNvZGUgKi8NCiAgICAgICAgc3RydWN0IGFycGNv
bSBhcnBjb207DQoNCiAgICAgICAgLyogQ29uZmlndXJhdGlvbiB3b3JkcyBm
cm9tIEVFUFJPTSAqLw0KICAgICAgICBpbnQgYXV0b19uZWdfY25mOyAgICAg
ICAgICAgICAgIC8qIEF1dG9OZWdvdGl0YXRpb24gY29uZmlndXJhdGlvbiAq
Lw0KCWludCBhZGFwdGVyX2NuZjsgICAgICAgICAgICAgICAgLyogQWRhcHRl
ciBjb25maWd1cmF0aW9uICovDQogICAgICAgIGludCBpc2FfY29uZmlnOyAg
ICAgICAgICAgICAgICAgLyogSVNBIGNvbmZpZ3VyYXRpb24gKi8NCiAgICAg
ICAgaW50IGNoaXBfdHlwZTsJCQkvKiBUeXBlIG9mIGNoaXAgKi8NCg0KICAg
ICAgICBzdHJ1Y3QgaWZtZWRpYSBtZWRpYTsJCS8qIE1lZGlhIGluZm9ybWF0
aW9uICovDQoNCiAgICAgICAgaW50IG5pY19hZGRyOyAJCQkvKiBCYXNlIElP
IGFkZHJlc3Mgb2YgY2FyZCAqLw0KCWludCBzZW5kX2NtZDsNCiAgICAgICAg
aW50IGxpbmVfY3RsOyAgICAgICAgICAgICAgICAgICAvKiAqLw0KICAgICAg
ICBpbnQgc2VuZF91bmRlcnJ1bjsNCiAgICAgICAgdm9pZCAqcmVjdl9yaW5n
Ow0KDQogICAgICAgIHVuc2lnbmVkIGNoYXIgKmJ1ZmZlcjsNCiAgICAgICAg
aW50IGJ1Zl9sZW47DQoNCn0gY3Nfc29mdGNbTkNTXTsNCg0Kc3RhdGljIHVf
bG9uZwljc191bml0ID0gTkNTOw0KDQpzdGF0aWMgaW50ICAgICAgY3NfYXR0
YWNoICAgICAgICAgICAgICAgX19QKChzdHJ1Y3QgY3Nfc29mdGMgKiwgaW50
LCBpbnQpKTsNCnN0YXRpYyBpbnQgICAgICBjc19hdHRhY2hfaXNhICAgICAg
ICAgICBfX1AoKHN0cnVjdCBpc2FfZGV2aWNlICopKTsNCnN0YXRpYyB2b2lk
CWNzX2luaXQJCQlfX1AoKHZvaWQgKikpOw0Kc3RhdGljIGludAljc19pb2N0
bAkJX19QKChzdHJ1Y3QgaWZuZXQgKiwgaW50LCBjYWRkcl90KSk7DQpzdGF0
aWMgaW50CWNzX3Byb2JlCQlfX1AoKHN0cnVjdCBpc2FfZGV2aWNlICopKTsN
CnN0YXRpYyBpbnQJY3NfY3M4OXgwX3Byb2JlCQlfX1AoKHN0cnVjdCBjc19z
b2Z0YyAqLA0KCQkJCQkgdV9zaG9ydCAqLCBzaG9ydCAqLCBpbnQsIGludCwg
aW50KSk7DQpzdGF0aWMgdm9pZAljc19zdGFydAkJX19QKChzdHJ1Y3QgaWZu
ZXQgKikpOw0Kc3RhdGljIHZvaWQJY3Nfc3RvcAkJCV9fUCgoc3RydWN0IGNz
X3NvZnRjICopKTsNCnN0YXRpYyB2b2lkCWNzX3Jlc2V0CQlfX1AoKHN0cnVj
dCBjc19zb2Z0YyAqKSk7DQpzdGF0aWMgdm9pZAljc193YXRjaGRvZwkJX19Q
KChzdHJ1Y3QgaWZuZXQgKikpOw0KDQpzdGF0aWMgaW50CWNzX21lZGlhY2hh
bmdlCV9fUCgoc3RydWN0IGlmbmV0ICopKTsNCnN0YXRpYyB2b2lkCWNzX21l
ZGlhc3RhdHVzCV9fUCgoc3RydWN0IGlmbmV0ICosIHN0cnVjdCBpZm1lZGlh
cmVxICopKTsNCnN0YXRpYyBpbnQgICAgICBjc19tZWRpYXNldAlfX1AoKHN0
cnVjdCBjc19zb2Z0YyAqLCBpbnQpKTsNCg0Kc3RhdGljIHZvaWQJY3Nfd3Jp
dGVfbWJ1ZnMoc3RydWN0IGNzX3NvZnRjKiwgc3RydWN0IG1idWYqKTsNCnN0
YXRpYyB2b2lkCWNzX3htaXRfYnVmKHN0cnVjdCBjc19zb2Z0YyopOw0Kc3Rh
dGljIGludAljc19nZXRfcGFja2V0KHN0cnVjdCBjc19zb2Z0YyopOw0Kc3Rh
dGljIHZvaWQJY3Nfc2V0bW9kZShzdHJ1Y3QgY3Nfc29mdGMqKTsNCg0Kc3Rh
dGljIGludAlnZXRfZWVwcm9tX2RhdGEoc3RydWN0IGNzX3NvZnRjICpzYywg
aW50LCBpbnQsIGludCAqKTsNCnN0YXRpYyBpbnQJZ2V0X2VlcHJvbV9ja3N1
bShpbnQsIGludCwgaW50ICopOw0Kc3RhdGljIGludAl3YWl0X2VlcHJvbV9y
ZWFkeSggc3RydWN0IGNzX3NvZnRjICopOw0Kc3RhdGljIHZvaWQJY29udHJv
bF9kY19kYyggc3RydWN0IGNzX3NvZnRjICosIGludCApOw0Kc3RhdGljIGlu
dAlzZW5kX3Rlc3RfcGt0KCBzdHJ1Y3QgY3Nfc29mdGMgKiApOw0Kc3RhdGlj
IGludAllbmFibGVfdHAoc3RydWN0IGNzX3NvZnRjICopOw0Kc3RhdGljIGlu
dAllbmFibGVfYXVpKHN0cnVjdCBjc19zb2Z0YyAqKTsNCnN0YXRpYyBpbnQJ
ZW5hYmxlX2JuYyhzdHJ1Y3QgY3Nfc29mdGMgKik7DQpzdGF0aWMgaW50ICAg
ICAgY3NfZHVwbGV4X2F1dG8oc3RydWN0IGNzX3NvZnRjICopOw0KDQpzdHJ1
Y3QgaXNhX2RyaXZlciBjc2RyaXZlciA9IHsNCgljc19wcm9iZSwNCgljc19h
dHRhY2hfaXNhLA0KCUNTX05BTUUsDQoJMA0KfTsNCg0Kc3RhdGljIGludA0K
Z2V0X2VlcHJvbV9kYXRhKCBzdHJ1Y3QgY3Nfc29mdGMgKnNjLCBpbnQgb2Zm
LCBpbnQgbGVuLCBpbnQgKmJ1ZmZlcikNCnsNCglpbnQgaTsNCg0KI2lmZGVm
IENTX0RFQlVHDQoJcHJpbnRmKENTX05BTUUiOkVFUFJPTSBkYXRhIGZyb20g
JXggZm9yICV4OlxuIiwgb2ZmLGxlbik7DQojZW5kaWYNCg0KCWZvciAoaT0w
O2k8bGVuO2krKykgew0KCQlpZiAod2FpdF9lZXByb21fcmVhZHkoc2MpIDwg
MCkgcmV0dXJuIC0xOw0KCQkvKiBTZW5kIGNvbW1hbmQgdG8gRUVQUk9NIHRv
IHJlYWQgKi8NCgkJY3Nfd3JpdGVyZWcoc2MtPm5pY19hZGRyLCBQUF9FRUNN
RCwgKG9mZitpKXxFRVBST01fUkVBRF9DTUQgKTsNCgkJaWYgKHdhaXRfZWVw
cm9tX3JlYWR5KHNjKTwwKQ0KCQkJcmV0dXJuIC0xOw0KCQlidWZmZXJbaV0g
PSBjc19yZWFkcmVnIChzYy0+bmljX2FkZHIsIFBQX0VFRGF0YSk7DQoNCiNp
ZmRlZiBDU19ERUJVRw0KCQlwcmludGYoIiUwMnggJTAyeCAiLCh1bnNpZ25l
ZCBjaGFyKWJ1ZmZlcltpXSwNCgkJCQkJKHVuc2lnbmVkIGNoYXIpYnVmZmVy
W2krMV0pOw0KI2VuZGlmDQoJfQ0KDQojaWZkZWYgQ1NfREVCVUcNCglwcmlu
dGYoIlxuIik7DQojZW5kaWYNCg0KCXJldHVybiAwOw0KfQ0KDQpzdGF0aWMg
aW50DQpnZXRfZWVwcm9tX2Nrc3VtKGludCBvZmYsIGludCBsZW4sIGludCAq
YnVmZmVyKQ0Kew0KCWludCBpLGNrc3VtPTA7DQoNCglmb3IgKGk9MDtpPGxl
bjtpKyspDQoJCWNrc3VtKz1idWZmZXJbaV07DQoJY2tzdW0gJj0gMHhmZmZm
Ow0KCWlmIChja3N1bT09MCkNCgkJcmV0dXJuIDA7DQoJcmV0dXJuIC0xOw0K
fQ0KDQpzdGF0aWMgaW50DQp3YWl0X2VlcHJvbV9yZWFkeShzdHJ1Y3QgY3Nf
c29mdGMgKnNjKQ0Kew0KCWludCB0aW1lb3V0PTEwMDA7DQoJREVMQVkgKCAz
MDAwMCApOwkvKiBYWFggc2hvdWxkIHdlIGRvIHNvbWUgY2hlY2tzIGhlcmUg
PyAqLw0KCXJldHVybiAwOw0KfQ0KDQpzdGF0aWMgdm9pZA0KY29udHJvbF9k
Y19kYyhzdHJ1Y3QgY3Nfc29mdGMgKnNjLCBpbnQgb25fbm90X29mZikNCnsN
Cgl1bnNpZ25lZCBpbnQgc2VsZl9jb250cm9sID0gSENCMV9FTkJMOw0KDQoJ
aWYgKCgoc2MtPmFkYXB0ZXJfY25mICYgQV9DTkZfRENfRENfUE9MQVJJVFkp
IT0wKSBeIG9uX25vdF9vZmYpDQoJCXNlbGZfY29udHJvbCB8PSBIQ0IxOw0K
CWVsc2UNCgkJc2VsZl9jb250cm9sICY9IH5IQ0IxOw0KCWNzX3dyaXRlcmVn
KCBzYy0+bmljX2FkZHIsIFBQX1NlbGZDVEwsIHNlbGZfY29udHJvbCApOw0K
DQoJREVMQVkoIDUwMDAwMCApOw0KfQ0KDQoNCnN0YXRpYyBpbnQNCmNzX2R1
cGxleF9hdXRvKHN0cnVjdCBjc19zb2Z0YyAqc2MpDQp7DQogICAgICAgIGlu
dCBpLCBlcnJvcj0wLCB1bml0PXNjLT5hcnBjb20uYWNfaWYuaWZfdW5pdDsN
CiAgICAgICAgDQogICAgICAgIGNzX3dyaXRlcmVnKHNjLT5uaWNfYWRkciwg
UFBfQXV0b05lZ0NUTCwNCiAgICAgICAgICAgICAgICAgICAgUkVfTkVHX05P
VyB8IEFMTE9XX0ZEWCB8IEFVVE9fTkVHX0VOQUJMRSApOw0KICAgICAgICBm
b3IgKGk9MDsgY3NfcmVhZHJlZyhzYy0+bmljX2FkZHIsUFBfQXV0b05lZ1NU
KSZBVVRPX05FR19CVVNZOyBpKyspIHsNCiAgICAgICAgICAgICAgICBpZiAo
aSA+IDQwMDAwKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBwcmludGYo
Q1NfTkFNRSIlMWQ6IGZ1bGwvaGFsZiBkdXBsZXggIg0KICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJhdXRvIG5lZ290aWF0aW9uIHRpbWVvdXRc
biIsIHVuaXQpOw0KCQkJZXJyb3IgPSBFVElNRURPVVQ7DQogICAgICAgICAg
ICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICB9DQogICAg
ICAgICAgICAgICAgREVMQVkoMTAwMCk7DQogICAgICAgIH0NCiAgICAgICAg
REVMQVkoIDEwMDAwMDAgKTsNCglyZXR1cm4gZXJyb3I7DQp9DQoNCnN0YXRp
YyBpbnQNCmVuYWJsZV90cChzdHJ1Y3QgY3Nfc29mdGMgKnNjKQ0Kew0KCWlu
dCBpOw0KCWludCB1bml0ID0gc2MtPmFycGNvbS5hY19pZi5pZl91bml0Ow0K
DQoJY3Nfd3JpdGVyZWcoc2MtPm5pY19hZGRyLCBQUF9MaW5lQ1RMLCBzYy0+
bGluZV9jdGwgJiB+QVVJX09OTFkpOw0KCWNvbnRyb2xfZGNfZGMoc2MsIDAp
Ow0KCURFTEFZKCAxNTAwMDAgKTsNCg0KCWlmICgoY3NfcmVhZHJlZyhzYy0+
bmljX2FkZHIsIFBQX0xpbmVTVCkgJiBMSU5LX09LKT09MCkgew0KCQlwcmlu
dGYoQ1NfTkFNRSIlMWQ6IGZhaWxlZCB0byBlbmFibGUgVFBcbiIsIHVuaXQp
Ow0KICAgICAgICAgICAgICAgIHJldHVybiBFSU5WQUw7DQoJfQ0KDQoJcmV0
dXJuIDA7DQp9DQoNCi8qDQogKiBYWFggVGhpcyB3YXMgcmV3cml0dGVuIGZy
b20gTGludXggZHJpdmVyIHdpdGhvdXQgYW55IHRlc3RzLg0KICovICAgICAg
ICAgICAgIA0Kc3RhdGljIGludA0Kc2VuZF90ZXN0X3BrdChzdHJ1Y3QgY3Nf
c29mdGMgKnNjKQ0Kew0KCWludCB1bml0ID0gc2MtPmFycGNvbS5hY19pZi5p
Zl91bml0Ow0KCWNoYXIgdGVzdF9wYWNrZXRbXSA9IHsgMCwwLDAsMCwwLDAs
IDAsMCwwLDAsMCwwLA0KCQkJCTAsIDQ2LCAgLyogQSA0NiBpbiBuZXR3b3Jr
IG9yZGVyICovDQoJCQkJMCwgMCwgICAvKiBEU0FQPTAgJiBTU0FQPTAgZmll
bGRzICovDQoJCQkJMHhmMywgMCAvKiBDb250cm9sIChUZXN0IFJlcSArIFAg
Yml0IHNldCkgKi8gfTsNCg0KCWNzX3dyaXRlcmVnKHNjLT5uaWNfYWRkciwg
UFBfTGluZUNUTCwNCgkJY3NfcmVhZHJlZyhzYy0+bmljX2FkZHIsIFBQX0xp
bmVDVEwpIHwgU0VSSUFMX1RYX09OICk7DQoJYmNvcHkodGVzdF9wYWNrZXQs
DQoJCQlzYy0+YXJwY29tLmFjX2VuYWRkciwgRVRIRVJfQUREUl9MRU4pOw0K
CWJjb3B5KHRlc3RfcGFja2V0K0VUSEVSX0FERFJfTEVOLA0KCQkJc2MtPmFy
cGNvbS5hY19lbmFkZHIsIEVUSEVSX0FERFJfTEVOKTsNCglvdXR3KHNjLT5u
aWNfYWRkciArIFRYX0NNRF9QT1JULCBzYy0+c2VuZF9jbWQpOw0KCW91dHco
c2MtPm5pY19hZGRyICsgVFhfTEVOX1BPUlQsIHNpemVvZih0ZXN0X3BhY2tl
dCkpOw0KDQoJLyogV2FpdCBmb3IgY2hpcCB0byBhbGxvY2F0ZSBtZW1vcnkg
Ki8NCglERUxBWSg1MDAwMCk7DQoJaWYgKCEoY3NfcmVhZHJlZyhzYy0+bmlj
X2FkZHIsIFBQX0J1c1NUKSAmIFJFQURZX0ZPUl9UWF9OT1cpKQ0KCQlyZXR1
cm4gMDsNCg0KCW91dHN3KHNjLT5uaWNfYWRkciArIFRYX0ZSQU1FX1BPUlQs
IHRlc3RfcGFja2V0LCBzaXplb2YodGVzdF9wYWNrZXQpKTsNCg0KCURFTEFZ
KDMwMDAwKTsNCg0KCWlmICgoY3NfcmVhZHJlZyhzYy0+bmljX2FkZHIsUFBf
VHhFdmVudCkgJiBUWF9TRU5EX09LX0JJVFMpID09IFRYX09LKQ0KCQlyZXR1
cm4gMTsNCglyZXR1cm4gMDsNCn0NCg0KLyoNCiAqIFhYWCBUaGlzIHdhcyBy
ZXdyaXR0ZW4gZnJvbSBMaW51eCBkcml2ZXIgd2l0aG91dCBhbnkgdGVzdHMu
DQogKi8NCnN0YXRpYyBpbnQNCmVuYWJsZV9hdWkoc3RydWN0IGNzX3NvZnRj
ICpzYykNCnsNCglpbnQgdW5pdCA9IHNjLT5hcnBjb20uYWNfaWYuaWZfdW5p
dDsNCg0KCWNvbnRyb2xfZGNfZGMoc2MsIDApOw0KCWNzX3dyaXRlcmVnKHNj
LT5uaWNfYWRkciwgUFBfTGluZUNUTCwNCgkJKHNjLT5saW5lX2N0bCAmIH5B
VVRPX0FVSV8xMEJBU0VUKSB8IEFVSV9PTkxZKTsNCg0KCWlmICghc2VuZF90
ZXN0X3BrdChzYykpIHsNCgkJcHJpbnRmKENTX05BTUUiJTFkIGZhaWxlZCB0
byBlbmFibGUgQVVJXG4iLCB1bml0KTsNCgkJcmV0dXJuIEVJTlZBTDsNCiAg
ICAgICAgfQ0KICAgICAgICByZXR1cm4gMDsNCn0NCg0KLyoNCiAqIFhYWCBU
aGlzIHdhcyByZXdyaXR0ZW4gZnJvbSBMaW51eCBkcml2ZXIgd2l0aG91dCBh
bnkgdGVzdHMuDQogKi8gICAgICAgICAgICAgDQpzdGF0aWMgaW50DQplbmFi
bGVfYm5jKHN0cnVjdCBjc19zb2Z0YyAqc2MpDQp7DQoJaW50IHVuaXQgPSBz
Yy0+YXJwY29tLmFjX2lmLmlmX3VuaXQ7DQoNCgljb250cm9sX2RjX2RjKHNj
LCAxKTsNCgljc193cml0ZXJlZyhzYy0+bmljX2FkZHIsIFBQX0xpbmVDVEws
DQoJCShzYy0+bGluZV9jdGwgJiB+QVVUT19BVUlfMTBCQVNFVCkgfCBBVUlf
T05MWSk7DQoNCglpZiAoIXNlbmRfdGVzdF9wa3Qoc2MpKSB7DQoJCXByaW50
ZihDU19OQU1FIiUxZCBmYWlsZWQgdG8gZW5hYmxlIEJOQ1xuIiwgdW5pdCk7
DQoJCXJldHVybiBFSU5WQUw7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJu
IDA7DQp9DQoNCnN0YXRpYyBpbnQNCmNzX2NzODl4MF9wcm9iZShzdHJ1Y3Qg
Y3Nfc29mdGMgKnNjLCB1X3Nob3J0ICpkZXZfaXJxLA0KCQkJc2hvcnQgKmRl
dl9kcnEsIGludCBpb2Jhc2UsIGludCB1bml0LCBpbnQgZmxhZ3MpDQp7DQoJ
dW5zaWduZWQgcmV2X3R5cGUgPSAwOw0KCWludCBpLCBpcnE9MCwgcmVzdWx0
Ow0KCWludCBlZXByb21fYnVmZltDSEtTVU1fTEVOXTsNCglpbnQgY2hpcF90
eXBlLCBwcF9pc2FpbnQsIHBwX2lzYWRtYTsNCgljaGFyIGNoaXBfcmV2aXNp
b247DQoNCglpZiAoKGludyhpb2Jhc2UrQUREX1BPUlQpICYgQUREX01BU0sp
ICE9IEFERF9TSUcpIHsNCgkJLyogQ2hpcCBub3QgZGV0ZWN0ZWQuIExldCdz
IHRyeSB0byByZXNldCBpdCAqLw0KCQlpZiAoYm9vdHZlcmJvc2UpDQoJCQlw
cmludGYoQ1NfTkFNRSIlMWQ6IHRyeWluZyB0byByZXNldCB0aGUgY2hpcC5c
biIsIHVuaXQpOw0KCQlvdXR3KGlvYmFzZStBRERfUE9SVCwgUFBfU2VsZkNU
TCk7DQoJCWkgPSBpbncoaW9iYXNlK0RBVEFfUE9SVCk7DQoJCW91dHcoaW9i
YXNlK0FERF9QT1JULCBQUF9TZWxmQ1RMKTsNCgkJb3V0dyhpb2Jhc2UrREFU
QV9QT1JULCBpIHwgUE9XRVJfT05fUkVTRVQpOw0KCQlpZiAoKGludyhpb2Jh
c2UrQUREX1BPUlQpICYgQUREX01BU0spICE9IEFERF9TSUcpDQoJCQlyZXR1
cm4gMDsNCgl9DQoNCglvdXR3KGlvYmFzZStBRERfUE9SVCwgUFBfQ2hpcElE
KTsNCglpZiAoaW53KGlvYmFzZStEQVRBX1BPUlQpICE9IENISVBfRUlTQV9J
RF9TSUcpDQoJCXJldHVybiAwOw0KDQoJcmV2X3R5cGUgPSBjc19yZWFkcmVn
KGlvYmFzZSwgUFJPRFVDVF9JRF9BREQpOw0KCWNoaXBfdHlwZSA9IHJldl90
eXBlICYgflJFVklTT05fQklUUzsNCgljaGlwX3JldmlzaW9uID0gKChyZXZf
dHlwZSAmIFJFVklTT05fQklUUykgPj4gOCkgKyAnQSc7DQoNCglzYy0+bmlj
X2FkZHIgPSBpb2Jhc2U7DQoJc2MtPmNoaXBfdHlwZSA9IGNoaXBfdHlwZTsN
CglpZihjaGlwX3R5cGU9PUNTODkwMCkgew0KCQlwcF9pc2FpbnQgPSBQUF9D
Uzg5MDBfSVNBSU5UOw0KCQlwcF9pc2FkbWEgPSBQUF9DUzg5MDBfSVNBRE1B
Ow0KCQlzYy0+c2VuZF9jbWQgPSBUWF9DUzg5MDBfQUZURVJfQUxMOw0KCX0g
ZWxzZSB7DQoJCXBwX2lzYWludCA9IFBQX0NTODkyMF9JU0FJTlQ7DQoJCXBw
X2lzYWRtYSA9IFBQX0NTODkyMF9JU0FETUE7DQoJCXNjLT5zZW5kX2NtZCA9
IFRYX0NTODkyMF9BRlRFUl9BTEw7DQoJfQ0KDQogICAgICAgIC8qDQogICAg
ICAgICAqIENsZWFyIHNvbWUgZmllbGRzIHNvIHRoYXQgZmFpbCBvZiBFRVBS
T00gd2lsbCBsZWZ0IHRoZW0gY2xlYW4NCiAgICAgICAgICovDQogICAgICAg
IHNjLT5hdXRvX25lZ19jbmYgPSAwOw0KICAgICAgICBzYy0+YWRhcHRlcl9j
bmYgID0gMDsNCiAgICAgICAgc2MtPmlzYV9jb25maWcgICA9IDA7DQogICAg
ICAgIA0KCS8qDQoJICogRUVQUk9NDQoJICovDQoJaWYoKGNzX3JlYWRyZWco
aW9iYXNlLCBQUF9TZWxmU1QpICYgRUVQUk9NX1BSRVNFTlQpID09IDApIHsN
CgkJcHJpbnRmKENTX05BTUUiJTFkOiBObyBFRVBST00sIGFzc3VtaW5nIGRl
ZmF1bHRzLlxuIiwNCgkJCXVuaXQpOw0KCX0gZWxzZSB7DQoJCWlmIChnZXRf
ZWVwcm9tX2RhdGEoc2MsU1RBUlRfRUVQUk9NX0RBVEEsQ0hLU1VNX0xFTiwg
ZWVwcm9tX2J1ZmYpPDApIHsNCgkJCSBwcmludGYoQ1NfTkFNRSIlMWQ6IEVF
UFJPTSByZWFkIGZhaWxlZCwgIg0KCQkJCSJhc3N1bWluZyBkZWZhdWx0cy4u
XG4iLCB1bml0KTsNCgkJfSBlbHNlIHsNCgkJCWlmIChnZXRfZWVwcm9tX2Nr
c3VtKFNUQVJUX0VFUFJPTV9EQVRBLENIS1NVTV9MRU4sIGVlcHJvbV9idWZm
KTwwKSB7DQoJCQkJcHJpbnRmKCBDU19OQU1FIiUxZDogRUVQUk9NIGNoZWtz
dW0gYmFkLCAiDQoJCQkJCSJhc3N1bWluZyBkZWZhdWx0cy4uXG4iLCB1bml0
ICk7DQoJCQl9IGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBzYy0+YXV0b19uZWdfY25mID0NCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBlZXByb21fYnVmZltBVVRPX05FR19DTkZf
T0ZGU0VULzJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz
Yy0+YWRhcHRlcl9jbmYgPQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGVlcHJvbV9idWZmW0FEQVBURVJfQ05GX09GRlNFVC8y
XTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2MtPmlzYV9j
b25maWcgPQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGVlcHJvbV9idWZmW0lTQV9DTkZfT0ZGU0VULzJdOw0KDQogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoaT0wOyBpPEVUSEVSX0FE
RFJfTEVOLzI7IGkrKykgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHNjLT5hcnBjb20uYWNfZW5hZGRyW2kqMl09DQogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBl
ZXByb21fYnVmZltpXTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzYy0+YXJwY29tLmFjX2VuYWRkcltpKjIrMV09DQogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBl
ZXByb21fYnVmZltpXSA+PiA4Ow0KICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
LyoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogSWYgbm8g
aW50ZXJydXB0IHNwZWNpZmllZCAob3IgIj8iKSwNCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICogdXNlIHdoYXQgdGhlIGJvYXJkIHRlbGxz
IHVzLg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8NCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCpkZXZfaXJxIDw9
IDApIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpcnEgPSBzYy0+aXNhX2NvbmZpZyAmIElOVF9OT19NQVNLOw0KICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjaGlwX3R5
cGU9PUNTODkwMCkgew0KCQkJCQkJc3dpdGNoKGlycSkgew0KICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAw
OiBpcnE9MTA7IGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY2FzZSAxOiBpcnE9MTE7IGJyZWFrOw0K
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY2FzZSAyOiBpcnE9MTI7IGJyZWFrOw0KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAzOiBpcnE9NTsg
IGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZGVmYXVsdDogcHJpbnRmKENTX05BTUUiJTFkOiBpbnZh
bGlkIGlycSBpbiBFRVBST00uXG4iLHVuaXQpOw0KCQkJCQkJfQ0KCQkJCQkJ
aWYgKGlycSE9MCkNCgkJCQkJCQkqZGV2X2lycT0odV9zaG9ydCkoMTw8aXJx
KTsNCgkJCQkJfSBlbHNlIHsNCgkJCQkJCWlmIChpcnEhPTAgJiYgaXJxPD1D
Uzg5MjBfTk9fSU5UUykNCgkJCQkJCQkqZGV2X2lycT0odV9zaG9ydCkoMTw8
aXJxKTsNCgkJCQkJfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB9DQoJCQl9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAg
ICAgICAgaWYgKChpcnE9ZmZzKCpkZXZfaXJxKSkpIHsNCiAgICAgICAgICAg
ICAgICBpcnEtLTsNCiAgICAgICAgICAgICAgICBpZiAoY2hpcF90eXBlID09
IENTODkwMCkgew0KCQkJc3dpdGNoKGlycSkgew0KICAgICAgICAgICAgICAg
ICAgICAgICAgY2FzZSAgNTogaXJxID0gMzsgYnJlYWs7DQogICAgICAgICAg
ICAgICAgICAgICAgICBjYXNlIDEwOiBpcnEgPSAwOyBicmVhazsNCiAgICAg
ICAgICAgICAgICAgICAgICAgIGNhc2UgMTE6IGlycSA9IDE7IGJyZWFrOw0K
ICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAxMjogaXJxID0gMjsgYnJl
YWs7DQogICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OiBwcmludGYo
Q1NfTkFNRSIlMWQ6IGludmFsaWQgaXJxXG4iLCB1bml0KTsNCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7DQoJCQl9DQogICAg
ICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAg
IGlmIChpcnEgPiBDUzg5MjBfTk9fSU5UUykgew0KICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBwcmludGYoQ1NfTkFNRSIlMWQ6IGludmFsaWQg
aXJxXG4iLCB1bml0KTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIDA7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAg
ICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGNzX3dyaXRlcmVnKGlv
YmFzZSwgcHBfaXNhaW50LCBpcnEpOw0KCX0gZWxzZSB7DQoJICAgICAgIAlw
cmludGYoQ1NfTkFNRSIlMWQ6IGludmFsaWQgaXJxXG4iLCB1bml0KTsNCiAg
ICAgICAgICAgICAgICByZXR1cm4gMDsNCiAgICAgICAgfQ0KICAgICAgICAN
CiAgICAgICAgLyoNCiAgICAgICAgICogVGVtcG9yYXJ5IGRpc2FibGVkDQog
ICAgICAgICAqDQogICAgICAgIGlmIChkcnE+MCkNCgkJY3Nfd3JpdGVyZWco
aW9iYXNlLCBwcF9pc2FkbWEsIGRycSk7DQoJZWxzZSB7DQoJCXByaW50Zigg
Q1NfTkFNRSIlMWQ6IGluY29ycmVjdCBkcnFcbiIsIHVuaXQgKTsNCgkJcmV0
dXJuIDA7DQoJfQ0KICAgICAgICAqLw0KDQoJaWYgKGJvb3R2ZXJib3NlKQ0K
CQkgcHJpbnRmKENTX05BTUUiJTFkOiBtb2RlbCBDUzg5JWMwJXMgcmV2ICVj
XG4iDQoJCQlDU19OQU1FIiUxZDogbWVkaWElcyVzJXNcbiINCgkJCUNTX05B
TUUiJTFkOiBpcnEgJWQgZHJxICVkXG4iLA0KCQkJdW5pdCwNCgkJCWNoaXBf
dHlwZT09Q1M4OTAwID8gJzAnIDogJzInLA0KCQkJY2hpcF90eXBlPT1DUzg5
MjBNID8gIk0iIDogIiIsDQoJCQljaGlwX3JldmlzaW9uLA0KCQkJdW5pdCwN
CgkJCShzYy0+YWRhcHRlcl9jbmYgJiBBX0NORl8xMEJfVCkgPyAiIFRQIiAg
OiAiIiwNCgkJCShzYy0+YWRhcHRlcl9jbmYgJiBBX0NORl9BVUkpICAgPyAi
IEFVSSIgOiAiIiwNCgkJCShzYy0+YWRhcHRlcl9jbmYgJiBBX0NORl8xMEJf
MikgPyAiIEJOQyIgOiAiIiwNCgkJCXVuaXQsIChpbnQpKmRldl9pcnEsIChp
bnQpKmRldl9kcnEpOw0KDQogICAgICAgIGlmICgoc2MtPmFkYXB0ZXJfY25m
ICYgQV9DTkZfRVhUTkRfMTBCXzIpICYmDQogICAgICAgICAgICAoc2MtPmFk
YXB0ZXJfY25mICYgQV9DTkZfTE9XX1JYX1NRVUVMQ0gpKQ0KICAgICAgICAg
ICAgICAgIHNjLT5saW5lX2N0bCA9IExPV19SWF9TUVVFTENIOw0KICAgICAg
ICBlbHNlDQogICAgICAgICAgICAgICAgc2MtPmxpbmVfY3RsID0gMDsNCg0K
ICAgICAgICANCglyZXR1cm4gUFBfSVNBSU9COw0KfQ0KDQovKg0KICogRGV0
ZXJtaW5lIGlmIHRoZSBkZXZpY2UgaXMgcHJlc2VudA0KICoNCiAqICAgb24g
ZW50cnk6DQogKiAJYSBwb2ludGVyIHRvIGFuIGlzYV9kZXZpY2Ugc3RydWN0
DQogKiAgIG9uIGV4aXQ6DQogKglOVUxMIGlmIGRldmljZSBub3QgZm91bmQN
CiAqCW9yICMgb2YgaS9vIGFkZHJlc3NlcyB1c2VkIChpZiBmb3VuZCkNCiAq
Lw0Kc3RhdGljIGludA0KY3NfcHJvYmUoc3RydWN0IGlzYV9kZXZpY2UgKmRl
dikNCnsNCglpbnQgbnBvcnRzOw0KDQoJc3RydWN0IGNzX3NvZnRjICpzYz0m
Y3Nfc29mdGNbZGV2LT5pZF91bml0XTsNCg0KCW5wb3J0cz1jc19jczg5eDBf
cHJvYmUoc2MsICYoZGV2LT5pZF9pcnEpLCAmKGRldi0+aWRfZHJxKSwNCgkJ
CShkZXYtPmlkX2lvYmFzZSksIChkZXYtPmlkX3VuaXQpLCAoZGV2LT5pZF9m
bGFncykpOw0KDQoJaWYgKG5wb3J0cykNCgkJcmV0dXJuIChucG9ydHMpOw0K
DQoJcmV0dXJuICgwKTsNCn0NCg0KLyoNCiAqIEluc3RhbGwgdGhlIGludGVy
ZmFjZSBpbnRvIGtlcm5lbCBuZXR3b3JraW5nIGRhdGEgc3RydWN0dXJlcw0K
ICovDQpzdGF0aWMgaW50DQpjc19hdHRhY2goc3RydWN0IGNzX3NvZnRjICpz
YywgaW50IHVuaXQsIGludCBmbGFncykNCnsNCiAgICAgICAgaW50IG1lZGlh
PTA7DQovKglzdHJ1Y3QgY3Nfc29mdGMgKnNjID0gJmNzX3NvZnRjW2Rldi0+
aWRfdW5pdF07ICovDQoJc3RydWN0IGlmbmV0ICppZnAgPSAmKHNjLT5hcnBj
b20uYWNfaWYpOw0KDQoJaWYgKCFpZnAtPmlmX25hbWUpIHsNCgkJaWZwLT5p
Zl9zb2Z0Yz1zYzsNCgkJaWZwLT5pZl91bml0PXVuaXQ7DQoJCWlmcC0+aWZf
bmFtZT1jc2RyaXZlci5uYW1lOw0KCQlpZnAtPmlmX291dHB1dD1ldGhlcl9v
dXRwdXQ7DQoJCWlmcC0+aWZfc3RhcnQ9Y3Nfc3RhcnQ7DQoJCWlmcC0+aWZf
aW9jdGw9Y3NfaW9jdGw7DQoJCWlmcC0+aWZfd2F0Y2hkb2c9Y3Nfd2F0Y2hk
b2c7DQoJCWlmcC0+aWZfaW5pdD1jc19pbml0Ow0KCQlpZnAtPmlmX3NuZC5p
ZnFfbWF4bGVuPSBJRlFfTUFYTEVOOw0KCQkvKg0KICAgICAgICAgICAgICAg
ICAqICBNSUIgREFUQQ0KICAgICAgICAgICAgICAgICAqLw0KICAgICAgICAg
ICAgICAgIC8qDQoJCWlmcC0+aWZfbGlua21pYj0mc2MtPm1pYmRhdGE7DQoJ
CWlmcC0+aWZfbGlua21pYmxlbj1zaXplb2Ygc2MtPm1pYmRhdGE7DQogICAg
ICAgICAgICAgICAgKi8NCg0KCQlpZnAtPmlmX2ZsYWdzPShJRkZfQlJPQURD
QVNUIHwgSUZGX1NJTVBMRVggfCBJRkZfTVVMVElDQVNUICk7DQoNCgkJLyoN
CgkJICogdGhpcyBjb2RlIHN0aWxsIGluIHByb2dyZXNzIChETUEgc3VwcG9y
dCkNCgkJICoNCg0KCQlzYy0+cmVjdl9yaW5nPW1hbGxvYyhDU19ETUFfQlVG
RkVSX1NJWkU8PDEsIE1fREVWQlVGLCBNX05PV0FJVCk7DQoJCWlmIChzYy0+
cmVjdl9yaW5nID09IE5VTEwpIHsNCgkJCWxvZyhMT0dfRVJSLENTX05BTUUN
CgkJCSIlZDogQ291bGRuJ3QgYWxsb2NhdGUgbWVtb3J5IGZvciBOSUNcbiIs
IHVuaXQpOw0KCQkJcmV0dXJuKDApOw0KCQl9DQoJCWlmICgoc2MtPnJlY3Zf
cmluZy0oc2MtPnJlY3ZfcmluZyAmIDB4MUZGRkYpKQ0KCQkgICAgPCAoMTI4
KjEwMjQtQ1NfRE1BX0JVRkZFUl9TSVpFKSkNCgkJICAgIHNjLT5yZWN2X3Jp
bmcrPTE2KjEwMjQ7DQoNCgkJKi8NCg0KCQlzYy0+YnVmZmVyPW1hbGxvYyhF
VEhFUl9NQVhfTEVOLUVUSEVSX0NSQ19MRU4sTV9ERVZCVUYsTV9OT1dBSVQp
Ow0KCQlpZiAoc2MtPmJ1ZmZlciA9PSBOVUxMKSB7DQogICAgICAgICAgICAg
ICAgICAgICAgICBwcmludGYoQ1NfTkFNRSIlZDogQ291bGRuJ3QgYWxsb2Nh
dGUgbWVtb3J5IGZvciBOSUNcbiIsDQogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdW5pdCk7DQogICAgICAgICAgICAgICAgICAgICAgICByZXR1
cm4oMCk7DQoJCX0NCg0KCQkvKg0KCQkgKiBJbml0aWFsaXplIHRoZSBtZWRp
YSBzdHJ1Y3R1cmVzLg0KCQkgKi8NCgkJaWZtZWRpYV9pbml0KCZzYy0+bWVk
aWEsIDAsIGNzX21lZGlhY2hhbmdlLCBjc19tZWRpYXN0YXR1cyk7DQoNCgkJ
aWYgKHNjLT5hZGFwdGVyX2NuZiAmIEFfQ05GXzEwQl9UKSB7DQoJCQlpZm1l
ZGlhX2FkZCgmc2MtPm1lZGlhLCBJRk1fRVRIRVJ8SUZNXzEwX1QsIDAsIE5V
TEwpOw0KCQkJaWYgKHNjLT5jaGlwX3R5cGUgIT0gQ1M4OTAwKSB7DQoJCQkJ
aWZtZWRpYV9hZGQoJnNjLT5tZWRpYSwNCgkJCQkJSUZNX0VUSEVSfElGTV8x
MF9UfElGTV9GRFgsIDAsIE5VTEwpOw0KCQkJCWlmbWVkaWFfYWRkKCZzYy0+
bWVkaWEsDQoJCQkJCUlGTV9FVEhFUnxJRk1fMTBfVHxJRk1fSERYLCAwLCBO
VUxMKTsNCgkJCX0NCgkJfSANCg0KCQlpZiAoc2MtPmFkYXB0ZXJfY25mICYg
QV9DTkZfMTBCXzIpDQoJCQlpZm1lZGlhX2FkZCgmc2MtPm1lZGlhLCBJRk1f
RVRIRVJ8SUZNXzEwXzIsIDAsIE5VTEwpOw0KDQoJCWlmIChzYy0+YWRhcHRl
cl9jbmYgJiBBX0NORl9BVUkpDQoJCQlpZm1lZGlhX2FkZCgmc2MtPm1lZGlh
LCBJRk1fRVRIRVJ8SUZNXzEwXzUsIDAsIE5VTEwpOw0KDQogICAgICAgICAg
ICAgICAgaWYgKHNjLT5hZGFwdGVyX2NuZiAmIEFfQ05GX01FRElBKQ0KICAg
ICAgICAgICAgICAgICAgICAgICAgaWZtZWRpYV9hZGQoJnNjLT5tZWRpYSwg
SUZNX0VUSEVSfElGTV9BVVRPLCAwLCBOVUxMKTsNCg0KICAgICAgICAgICAg
ICAgIC8qIFNldCBkZWZhdWx0IG1lZGlhIGZyb20gRUVQUk9NICovDQogICAg
ICAgICAgICAgICAgc3dpdGNoIChzYy0+YWRhcHRlcl9jbmYgJiBBX0NORl9N
RURJQV9UWVBFKSB7DQogICAgICAgICAgICAgICAgY2FzZSBBX0NORl9NRURJ
QV9BVVRPOiAgbWVkaWEgPSBJRk1fRVRIRVJ8SUZNX0FVVE87IGJyZWFrOw0K
ICAgICAgICAgICAgICAgIGNhc2UgQV9DTkZfTUVESUFfMTBCX1Q6IG1lZGlh
ID0gSUZNX0VUSEVSfElGTV8xMF9UOyBicmVhazsNCiAgICAgICAgICAgICAg
ICBjYXNlIEFfQ05GX01FRElBXzEwQl8yOiBtZWRpYSA9IElGTV9FVEhFUnxJ
Rk1fMTBfMjsgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSBBX0NORl9N
RURJQV9BVUk6ICAgbWVkaWEgPSBJRk1fRVRIRVJ8SUZNXzEwXzU7IGJyZWFr
Ow0KICAgICAgICAgICAgICAgIGRlZmF1bHQ6IHByaW50ZihDU19OQU1FIiVk
OiBhZGFwdGVyIGhhcyBubyBtZWRpYVxuIiwgdW5pdCk7DQogICAgICAgICAg
ICAgICAgfQ0KICAgICAgICAgICAgICAgIGlmbWVkaWFfc2V0KCZzYy0+bWVk
aWEsIG1lZGlhKTsNCgkJY3NfbWVkaWFzZXQoc2MsIG1lZGlhKTsNCg0KCQlp
Zl9hdHRhY2goaWZwKTsNCgkJY3Nfc3RvcCggc2MgKTsNCgkJZXRoZXJfaWZh
dHRhY2goaWZwKTsNCgl9DQoNCglpZiAoYm9vdHZlcmJvc2UpDQoJCXByaW50
ZihDU19OQU1FIiVkOiBldGhlcm5ldCBhZGRyZXNzICU2RFxuIiwNCgkJICAg
ICAgIGlmcC0+aWZfdW5pdCwgc2MtPmFycGNvbS5hY19lbmFkZHIsICI6Iik7
DQoNCiNpZiBOQlBGSUxURVIgPiAwDQoJYnBmYXR0YWNoKGlmcCwgRExUX0VO
MTBNQiwgc2l6ZW9mIChzdHJ1Y3QgZXRoZXJfaGVhZGVyKSk7DQojZW5kaWYN
CglyZXR1cm4gMTsNCn0NCg0Kc3RhdGljIGludA0KY3NfYXR0YWNoX2lzYShz
dHJ1Y3QgaXNhX2RldmljZSAqZGV2KQ0Kew0KICAgICAgICBpbnQgdW5pdD1k
ZXYtPmlkX3VuaXQ7DQogICAgICAgIHN0cnVjdCBjc19zb2Z0YyAqc2M9JmNz
X3NvZnRjW3VuaXRdOw0KICAgICAgICBpbnQgZmxhZ3M9ZGV2LT5pZF9mbGFn
czsNCg0KICAgICAgICByZXR1cm4gY3NfYXR0YWNoKHNjLCB1bml0LCBmbGFn
cyk7DQp9DQoNCi8qDQogKiBJbml0aWFsaXplIHRoZSBib2FyZA0KICovDQpz
dGF0aWMgdm9pZA0KY3NfaW5pdCh2b2lkICp4c2MpDQp7DQoJc3RydWN0IGNz
X3NvZnRjICpzYz0oc3RydWN0IGNzX3NvZnRjICopeHNjOw0KCXN0cnVjdCBp
Zm5ldCAqaWZwID0gJnNjLT5hcnBjb20uYWNfaWY7DQoJaW50IGksIHMsIHJl
c3VsdCwgcnhfY2ZnOw0KDQoJaWYgKGlmcC0+aWZfYWRkcmxpc3QgPT0gKHN0
cnVjdCBpZmFkZHIgKikgMCkNCgkJcmV0dXJuOw0KDQoJLyoNCgkgKiByZXNl
dCB3aGF0Y2hkb2cgdGltZXINCgkgKi8NCglpZnAtPmlmX3RpbWVyPTA7DQoJ
c2MtPmJ1Zl9sZW4gPSAwOw0KCQ0KCXM9c3BsaW1wKCk7DQoNCgkvKg0KCSAq
IEhhcmR3YXJlIGluaXRpYWxpemF0aW9uIG9mIGNzDQoJICovDQoNCgkvKiBF
bmFibGUgcmVjZWl2ZXIgYW5kIHRyYW5zbWl0dGVyICovDQoJY3Nfd3JpdGVy
ZWcoc2MtPm5pY19hZGRyLCBQUF9MaW5lQ1RMLA0KCQkgICAgc2MtPmxpbmVf
Y3RsIHwgU0VSSUFMX1JYX09OIHwgU0VSSUFMX1RYX09OKTsNCg0KCS8qIENv
bmZpZ3VyZSB0aGUgcmVjZWl2ZXIgbW9kZSAqLw0KCWNzX3NldG1vZGUoc2Mp
Ow0KDQoJLyoNCgkgKiBUaGlzIGRlZmluZXMgd2hhdCB0eXBlIG9mIGZyYW1l
cyB3aWxsIGNhdXNlIGludGVycnVwdHMNCgkgKiBCYWQgZnJhbWVzIHNob3Vs
ZCBnZW5lcmF0ZSBpbnRlcnJ1cHRzIHNvIHRoYXQgdGhlIGRyaXZlcg0KCSAq
IGNvdWxkIHRyYWNrIHN0YXRpc3RpY3Mgb2YgZGlzY2FyZGVkIHBhY2tldHMN
CgkgKi8NCiAgICAgICAgcnhfY2ZnID0gUlhfT0tfRU5CTCB8IFJYX0NSQ19F
UlJPUl9FTkJMIHwgUlhfUlVOVF9FTkJMIHwNCgkJIFJYX0VYVFJBX0RBVEFf
RU5CTDsNCglpZiAoc2MtPmlzYV9jb25maWcgJiBTVFJFQU1fVFJBTlNGRVIp
DQoJCXJ4X2NmZyB8PSBSWF9TVFJFQU1fRU5CTDsNCgljc193cml0ZXJlZyhz
Yy0+bmljX2FkZHIsIFBQX1J4Q0ZHLCByeF9jZmcpOw0KDQoJY3Nfd3JpdGVy
ZWcoc2MtPm5pY19hZGRyLCBQUF9UeENGRywgVFhfTE9TVF9DUlNfRU5CTCB8
DQoJCSAgICBUWF9TUUVfRVJST1JfRU5CTCB8IFRYX09LX0VOQkwgfCBUWF9M
QVRFX0NPTF9FTkJMIHwNCgkJICAgIFRYX0pCUl9FTkJMIHwgVFhfQU5ZX0NP
TF9FTkJMIHwgVFhfMTZfQ09MX0VOQkwpOw0KDQoJY3Nfd3JpdGVyZWcoc2Mt
Pm5pY19hZGRyLCBQUF9CdWZDRkcsIFJFQURZX0ZPUl9UWF9FTkJMIHwNCgkJ
ICAgIFJYX01JU1NfQ09VTlRfT1ZSRkxPV19FTkJMIHwgVFhfQ09MX0NPVU5U
X09WUkZMT1dfRU5CTCB8DQoJCSAgICBUWF9VTkRFUlJVTl9FTkJMIC8qfCBS
WF9ETUFfRU5CTCovKTsNCg0KICAgICAgICAvKiBXcml0ZSBNQUMgYWRkcmVz
cyBpbnRvIElBIGZpbHRlciAqLw0KICAgICAgICBmb3IgKGk9MDsgaTxFVEhF
Ul9BRERSX0xFTi8yOyBpKyspDQogICAgICAgICAgICAgICAgY3Nfd3JpdGVy
ZWcoc2MtPm5pY19hZGRyLCBQUF9JQStpKjIsDQogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgc2MtPmFycGNvbS5hY19lbmFkZHJbaSoyXSB8DQogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKHNjLT5hcnBjb20uYWNfZW5hZGRy
W2kqMisxXSA8PCA4KSApOw0KDQoJLyoNCgkgKiBOb3cgZW5hYmxlIGV2ZXJ5
dGhpbmcNCgkgKi8NCi8qDQojaWZkZWYJQ1NfVVNFXzY0S19ETUENCgljc193
cml0ZXJlZyhzYy0+bmljX2FkZHIsIFBQX0J1c0NUTCwgRU5BQkxFX0lSUSB8
IFJYX0RNQV9TSVpFXzY0Syk7DQogICAgICAgICNlbHNlDQoNCiAgICAgICAg
Y3Nfd3JpdGVyZWcoc2MtPm5pY19hZGRyLCBQUF9CdXNDVEwsIEVOQUJMRV9J
UlEpOw0KI2VuZGlmDQoqLw0KCWNzX3dyaXRlcmVnKHNjLT5uaWNfYWRkciwg
UFBfQnVzQ1RMLCBFTkFCTEVfSVJRKTsNCgkNCgkvKg0KCSAqIFNldCBydW5u
aW5nIGFuZCBjbGVhciBvdXRwdXQgYWN0aXZlIGZsYWdzDQoJICovDQoJc2Mt
PmFycGNvbS5hY19pZi5pZl9mbGFncyB8PSBJRkZfUlVOTklORzsNCglzYy0+
YXJwY29tLmFjX2lmLmlmX2ZsYWdzICY9IH5JRkZfT0FDVElWRTsNCg0KCS8q
DQoJICogU3RhcnQgc2VuZGluZyBwcm9jZXNzDQoJICovDQoJY3Nfc3RhcnQo
aWZwKTsNCg0KCSh2b2lkKSBzcGx4KHMpOw0KfQ0KDQovKg0KICogR2V0IHRo
ZSBwYWNrZXQgZnJvbSB0aGUgYm9hcmQgYW5kIHNlbmQgaXQgdG8gdGhlIHVw
cGVyIGxheWVyDQogKiB2aWEgZXRoZXJfaW5wdXQoKS4NCiAqLw0Kc3RhdGlj
IGludA0KY3NfZ2V0X3BhY2tldChzdHJ1Y3QgY3Nfc29mdGMgKnNjKQ0Kew0K
CXN0cnVjdCBpZm5ldCAqaWZwID0gJihzYy0+YXJwY29tLmFjX2lmKTsNCglp
bnQgaW9iYXNlID0gc2MtPm5pY19hZGRyLCBzdGF0dXMsIGxlbmd0aDsNCglz
dHJ1Y3QgZXRoZXJfaGVhZGVyICplaDsNCglzdHJ1Y3QgbWJ1ZiAqbTsNCg0K
I2lmZGVmIENTX0RFQlVHDQoJaW50IGk7DQojZW5kaWYNCg0KCXN0YXR1cyA9
IGludyhpb2Jhc2UgKyBSWF9GUkFNRV9QT1JUKTsNCglsZW5ndGggPSBpbnco
aW9iYXNlICsgUlhfRlJBTUVfUE9SVCk7DQoNCiNpZmRlZiBDU19ERUJVRw0K
CXByaW50ZihDU19OQU1FIiUxZDogcmN2ZDogc3RhdCAleCwgbGVuICVkXG4i
LA0KCQlpZnAtPmlmX3VuaXQsIHN0YXR1cywgbGVuZ3RoKTsNCiNlbmRpZg0K
DQoJaWYgKCEoc3RhdHVzICYgUlhfT0spKSB7DQojaWZkZWYgQ1NfREVCVUcN
CgkJcHJpbnRmKENTX05BTUUiJTFkOiBiYWQgcGt0IHN0YXQgJXhcbiIsIGlm
cC0+aWZfdW5pdCwgc3RhdHVzKTsNCiNlbmRpZg0KCQlpZnAtPmlmX2llcnJv
cnMrKzsNCgkJcmV0dXJuIC0xOw0KCX0NCg0KCU1HRVRIRFIobSwgTV9ET05U
V0FJVCwgTVRfREFUQSk7DQoJaWYgKG09PU5VTEwpDQoJCXJldHVybiAtMTsN
Cg0KCWlmIChsZW5ndGggPiBNSExFTikgew0KCQlNQ0xHRVQobSwgTV9ET05U
V0FJVCk7DQoJCWlmICghKG0tPm1fZmxhZ3MgJiBNX0VYVCkpIHsNCgkJCW1f
ZnJlZW0obSk7DQoJCQlyZXR1cm4gLTE7DQoJCX0NCgl9DQoNCgkvKiBJbml0
aWFsaXplIHBhY2tldCdzIGhlYWRlciBpbmZvICovDQoJbS0+bV9wa3RoZHIu
cmN2aWYgPSBpZnA7DQoJbS0+bV9wa3RoZHIubGVuID0gbGVuZ3RoOw0KCW0t
Pm1fbGVuID0gbGVuZ3RoOw0KDQoJLyogR2V0IHRoZSBkYXRhICovDQoJaW5z
dyhpb2Jhc2UgKyBSWF9GUkFNRV9QT1JULCBtLT5tX2RhdGEsIChsZW5ndGgr
MSk+PjEpOw0KDQoJZWggPSBtdG9kKG0sIHN0cnVjdCBldGhlcl9oZWFkZXIg
Kik7DQoNCiNpZiBOQlBGSUxURVIgPiAwDQoJaWYgKGlmcC0+aWZfYnBmKQ0K
CQlicGZfbXRhcChpZnAsIG0pOw0KI2VuZGlmDQoNCiNpZmRlZiBDU19ERUJV
Rw0KCWZvciAoaT0wO2k8bGVuZ3RoO2krKykNCgkgICAgIHByaW50ZigiICUw
MngiLCh1bnNpZ25lZCBjaGFyKSooKGNoYXIgKikobS0+bV9kYXRhK2kpKSk7
DQoJcHJpbnRmKCAiXG4iICk7DQojZW5kaWYNCg0KCWlmIChzdGF0dXMgJiAo
UlhfSUEgfCBSWF9CUk9BRENBU1QpIHx8IA0KCSAgICAoaWZwLT5pZl9mbGFn
cyAmIElGRl9NVUxUSUNBU1QgJiYgc3RhdHVzICYgUlhfSEFTSEVEKSkgew0K
CQltLT5tX3BrdGhkci5sZW4gLT0gc2l6ZW9mKHN0cnVjdCBldGhlcl9oZWFk
ZXIpOw0KCQltLT5tX2xlbiAtPSBzaXplb2Yoc3RydWN0IGV0aGVyX2hlYWRl
cik7DQoJCW0tPm1fZGF0YSArPSBzaXplb2Yoc3RydWN0IGV0aGVyX2hlYWRl
cik7DQoNCgkJLyogRmVlZCB0aGUgcGFja2V0IHRvIHRoZSB1cHBlciBsYXll
ciAqLw0KCQlldGhlcl9pbnB1dChpZnAsIGVoLCBtKTsNCg0KCQlpZnAtPmlm
X2lwYWNrZXRzKys7DQoNCgkJaWYgKGxlbmd0aD09RVRIRVJfTUFYX0xFTi1F
VEhFUl9DUkNfTEVOKQ0KICAgICAgICAgICAgICAgICAgICAgICAgREVMQVko
IENTX1dBSVRfTkVYVF9QQUNLRVQgKTsNCgl9IGVsc2Ugew0KCQltX2ZyZWVt
KG0pOw0KCX0NCg0KCXJldHVybiAwOw0KfQ0KDQovKg0KICogU29mdHdhcmUg
Y2FsbHMgaW50ZXJydXB0IGhhbmRsZXINCiAqLw0Kc3RhdGljIHZvaWQNCmNz
aW50cl9zYyhzdHJ1Y3QgY3Nfc29mdGMgKnNjLCBpbnQgdW5pdCkNCnsNCglz
dHJ1Y3QgaWZuZXQgKmlmcCA9ICYoc2MtPmFycGNvbS5hY19pZik7DQoJaW50
IHN0YXR1cywgczsNCg0KI2lmZGVmIENTX0RFQlVHDQoJcHJpbnRmKENTX05B
TUUiJTFkOiBJbnRlcnJ1cHQuXG4iLCB1bml0KTsNCiNlbmRpZg0KDQoJd2hp
bGUgKChzdGF0dXM9Y3NfcmVhZHdvcmQoc2MtPm5pY19hZGRyLCBJU1FfUE9S
VCkpKSB7DQoNCiNpZmRlZiBDU19ERUJVRw0KCQlwcmludGYoIENTX05BTUUi
JTFkOmZyb20gSVNROiAlMDR4XG4iLCB1bml0LCBzdGF0dXMgKTsNCiNlbmRp
Zg0KDQoJCXN3aXRjaCAoc3RhdHVzICYgSVNRX0VWRU5UX01BU0spIHsNCiAg
ICAgICAgICAgICAgICBjYXNlIElTUV9SRUNFSVZFUl9FVkVOVDoNCiAgICAg
ICAgICAgICAgICAgICAgICAgIGNzX2dldF9wYWNrZXQoc2MpOw0KICAgICAg
ICAgICAgICAgICAgICAgICAgYnJlYWs7DQoNCiAgICAgICAgICAgICAgICBj
YXNlIElTUV9UUkFOU01JVFRFUl9FVkVOVDoNCiAgICAgICAgICAgICAgICAg
ICAgICAgIGlmIChzdGF0dXMgJiBUWF9PSykNCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaWZwLT5pZl9vcGFja2V0cysrOw0KICAgICAgICAg
ICAgICAgICAgICAgICAgZWxzZQ0KICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpZnAtPmlmX29lcnJvcnMrKzsNCiAgICAgICAgICAgICAgICAg
ICAgICAgIGlmcC0+aWZfZmxhZ3MgJj0gfklGRl9PQUNUSVZFOw0KICAgICAg
ICAgICAgICAgICAgICAgICAgaWZwLT5pZl90aW1lciA9IDA7DQogICAgICAg
ICAgICAgICAgICAgICAgICBicmVhazsNCg0KICAgICAgICAgICAgICAgIGNh
c2UgSVNRX0JVRkZFUl9FVkVOVDoNCiAgICAgICAgICAgICAgICAgICAgICAg
IGlmIChzdGF0dXMgJiBSRUFEWV9GT1JfVFgpIHsNCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaWZwLT5pZl9mbGFncyAmPSB+SUZGX09BQ1RJ
VkU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmcC0+aWZf
dGltZXIgPSAwOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAg
ICAgICAgICAgICAgICAgICAgICBpZiAoc3RhdHVzICYgVFhfVU5ERVJSVU4p
IHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZwLT5pZl9m
bGFncyAmPSB+SUZGX09BQ1RJVkU7DQogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGlmcC0+aWZfdGltZXIgPSAwOw0KICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpZnAtPmlmX29lcnJvcnMrKzsNCiAgICAgICAg
ICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGJy
ZWFrOw0KDQogICAgICAgICAgICAgICAgY2FzZSBJU1FfUlhfTUlTU19FVkVO
VDoNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmcC0+aWZfaWVycm9ycys9
KHN0YXR1cz4+Nik7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsN
Cg0KICAgICAgICAgICAgICAgIGNhc2UgSVNRX1RYX0NPTF9FVkVOVDoNCiAg
ICAgICAgICAgICAgICAgICAgICAgIGlmcC0+aWZfY29sbGlzaW9ucys9KHN0
YXR1cz4+Nik7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAg
ICAgICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICBpZiAoIShp
ZnAtPmlmX2ZsYWdzICYgSUZGX09BQ1RJVkUpKSB7DQogICAgICAgICAgICAg
ICAgY3Nfc3RhcnQoaWZwKTsNCiAgICAgICAgfQ0KfQ0KDQovKg0KICogSGFu
ZGxlIGludGVycnVwdHMNCiAqLw0Kc3RhdGljIHZvaWQNCmNzaW50cihpbnQg
dW5pdCkNCnsNCglzdHJ1Y3QgY3Nfc29mdGMgKnNjID0gJmNzX3NvZnRjW3Vu
aXRdOw0KDQoJY3NpbnRyX3NjKHNjLCB1bml0KTsNCn0NCg0KLyoNCiAqIFNh
dmUgdGhlIGRhdGEgaW4gYnVmZmVyDQogKi8NCg0Kc3RhdGljIHZvaWQNCmNz
X3dyaXRlX21idWZzKCBzdHJ1Y3QgY3Nfc29mdGMgKnNjLCBzdHJ1Y3QgbWJ1
ZiAqbSApDQp7DQoJaW50IGxlbjsNCglzdHJ1Y3QgbWJ1ZiAqbXA7DQoJdW5z
aWduZWQgY2hhciAqZGF0YSwgKmJ1ZjsNCg0KCWZvciAobXA9bSwgYnVmPXNj
LT5idWZmZXIsIHNjLT5idWZfbGVuPTA7IG1wICE9IE5VTEw7IG1wPW1wLT5t
X25leHQpIHsNCgkJbGVuID0gbXAtPm1fbGVuOw0KDQoJCS8qDQoJCSAqIEln
bm9yZSBlbXB0eSBwYXJ0cw0KCQkgKi8NCgkJaWYgKCFsZW4pDQoJCWNvbnRp
bnVlOw0KDQoJCS8qDQoJCSAqIEZpbmQgYWN0dWFsIGRhdGEgYWRkcmVzcw0K
CQkgKi8NCgkJZGF0YSA9IG10b2QobXAsIGNhZGRyX3QpOw0KDQoJCWJjb3B5
KChjYWRkcl90KSBkYXRhLCAoY2FkZHJfdCkgYnVmLCBsZW4pOw0KCQlidWYg
Kz0gbGVuOw0KCQlzYy0+YnVmX2xlbiArPSBsZW47DQoJfQ0KfQ0KDQoNCnN0
YXRpYyB2b2lkDQpjc194bWl0X2J1Ziggc3RydWN0IGNzX3NvZnRjICpzYyAp
DQp7DQoJb3V0c3coc2MtPm5pY19hZGRyK1RYX0ZSQU1FX1BPUlQsIHNjLT5i
dWZmZXIsIChzYy0+YnVmX2xlbisxKT4+MSk7DQoJc2MtPmJ1Zl9sZW4gPSAw
Ow0KfQ0KDQpzdGF0aWMgdm9pZA0KY3Nfc3RhcnQoc3RydWN0IGlmbmV0ICpp
ZnApDQp7DQoJaW50IHMsIGxlbmd0aDsNCglzdHJ1Y3QgbWJ1ZiAqbSwgKm1w
Ow0KCXN0cnVjdCBjc19zb2Z0YyAqc2MgPSBpZnAtPmlmX3NvZnRjOw0KDQoJ
cyA9IHNwbGltcCgpOw0KDQoJZm9yICg7Oykgew0KCQlpZiAoc2MtPmJ1Zl9s
ZW4pDQoJCQlsZW5ndGggPSBzYy0+YnVmX2xlbjsNCgkJZWxzZSB7DQoJCQlJ
Rl9ERVFVRVVFKCAmaWZwLT5pZl9zbmQsIG0gKTsNCg0KCQkJaWYgKG09PU5V
TEwpIHsNCgkJCQkodm9pZCkgc3BseChzKTsNCgkJCQlyZXR1cm47DQoJCQl9
DQoNCgkJCWZvciAobGVuZ3RoPTAsIG1wPW07IG1wICE9IE5VTEw7IG1wPW1w
LT5tX25leHQpDQoJCQkJbGVuZ3RoICs9IG1wLT5tX2xlbjsNCg0KCQkJLyog
U2tpcCB6ZXJvLWxlbmd0aCBwYWNrZXRzICovDQoJCQlpZiAobGVuZ3RoID09
IDApIHsNCgkJCQltX2ZyZWVtKG0pOw0KCQkJCWNvbnRpbnVlOw0KCQkJfQ0K
DQoJCQljc193cml0ZV9tYnVmcyhzYywgbSk7DQoNCiNpZiBOQlBGSUxURVIg
PiAwDQoJCQlpZiAoaWZwLT5pZl9icGYpIHsNCgkJCQlicGZfbXRhcChpZnAs
IG0pOw0KCQkJfQ0KI2VuZGlmDQoNCgkJCW1fZnJlZW0obSk7DQoJCX0NCg0K
CQkvKg0KCQkgKiBJc3N1ZSBhIFNFTkQgY29tbWFuZA0KCQkgKi8NCgkJb3V0
dyhzYy0+bmljX2FkZHIrVFhfQ01EX1BPUlQsIHNjLT5zZW5kX2NtZCk7DQoJ
CW91dHcoc2MtPm5pY19hZGRyK1RYX0xFTl9QT1JULCBsZW5ndGggKTsNCg0K
CQkvKg0KCQkgKiBJZiB0aGVyZSdzIG5vIGZyZWUgc3BhY2UgaW4gdGhlIGJ1
ZmZlciB0aGVuIGxlYXZlDQoJCSAqIHRoaXMgcGFja2V0IGZvciB0aGUgbmV4
dCB0aW1lOiBpbmRpY2F0ZSBvdXRwdXQgYWN0aXZlDQoJCSAqIGFuZCByZXR1
cm4uDQoJCSAqLw0KCQlpZiAoIShjc19yZWFkcmVnKHNjLT5uaWNfYWRkciwg
UFBfQnVzU1QpICYgUkVBRFlfRk9SX1RYX05PVykpIHsNCgkJCWlmcC0+aWZf
dGltZXIgPSBzYy0+YnVmX2xlbjsNCgkJCSh2b2lkKSBzcGx4KHMpOw0KCQkJ
aWZwLT5pZl9mbGFncyB8PSBJRkZfT0FDVElWRTsNCgkJCXJldHVybjsNCgkJ
fQ0KDQogICAgICAgICAgICAgICAJY3NfeG1pdF9idWYoc2MpOw0KDQoJCS8q
DQoJCSAqIFNldCB0aGUgd2F0Y2hkb2cgdGltZXIgaW4gY2FzZSB3ZSBuZXZl
ciBoZWFyDQoJCSAqIGZyb20gYm9hcmQgYWdhaW4uIChJIGRvbid0IGtub3cg
YWJvdXQgY29ycmVjdA0KCQkgKiB2YWx1ZSBmb3IgdGhpcyB0aW1lb3V0KQ0K
CQkgKi8NCgkJaWZwLT5pZl90aW1lciA9IGxlbmd0aDsNCg0KCQkodm9pZCkg
c3BseChzKTsNCgkJaWZwLT5pZl9mbGFncyB8PSBJRkZfT0FDVElWRTsNCgkJ
cmV0dXJuOw0KCX0NCn0NCg0KLyoNCiAqIFN0b3AgZXZlcnl0aGluZyBvbiB0
aGUgaW50ZXJmYWNlDQogKi8NCnN0YXRpYyB2b2lkDQpjc19zdG9wKHN0cnVj
dCBjc19zb2Z0YyAqc2MpDQp7DQoJaW50IHMgPSBzcGxpbXAoKTsNCg0KCWNz
X3dyaXRlcmVnKHNjLT5uaWNfYWRkciwgUFBfUnhDRkcsIDApOw0KCWNzX3dy
aXRlcmVnKHNjLT5uaWNfYWRkciwgUFBfVHhDRkcsIDApOw0KCWNzX3dyaXRl
cmVnKHNjLT5uaWNfYWRkciwgUFBfQnVmQ0ZHLCAwKTsNCgljc193cml0ZXJl
ZyhzYy0+bmljX2FkZHIsIFBQX0J1c0NUTCwgMCk7DQoNCglzYy0+YXJwY29t
LmFjX2lmLmlmX2ZsYWdzICY9IH4oSUZGX1JVTk5JTkcgfCBJRkZfT0FDVElW
RSk7DQoJc2MtPmFycGNvbS5hY19pZi5pZl90aW1lciA9IDA7DQoNCgkodm9p
ZCkgc3BseChzKTsNCn0NCg0KLyoNCiAqIFJlc2V0IHRoZSBpbnRlcmZhY2UN
CiAqLw0Kc3RhdGljIHZvaWQNCmNzX3Jlc2V0KHN0cnVjdCBjc19zb2Z0YyAq
c2MpDQp7DQoJY3Nfc3RvcChzYyk7DQoJY3NfaW5pdChzYyk7DQp9DQoNCnN0
YXRpYyB2b2lkDQpjc19zZXRtb2RlKHN0cnVjdCBjc19zb2Z0YyAqc2MpDQp7
DQoJc3RydWN0IGlmbmV0ICppZnAgPSAmKHNjLT5hcnBjb20uYWNfaWYpOw0K
CWludCByeF9jdGw7DQoNCgkvKiBTdG9wIHRoZSByZWNlaXZlciB3aGlsZSBj
aGFuZ2luZyBmaWx0ZXJzICovDQoJY3Nfd3JpdGVyZWcoc2MtPm5pY19hZGRy
LCBQUF9MaW5lQ1RMLCANCgkJCWNzX3JlYWRyZWcoc2MtPm5pY19hZGRyLCBQ
UF9MaW5lQ1RMKSAmIH5TRVJJQUxfUlhfT04pOw0KDQoJaWYgKGlmcC0+aWZf
ZmxhZ3MgJiBJRkZfUFJPTUlTQykgew0KCQkvKiBUdXJuIG9uIHByb21pc2N1
b3VzIG1vZGUuICovDQoJCXJ4X2N0bCA9IFJYX09LX0FDQ0VQVCB8IFJYX1BS
T01fQUNDRVBUOw0KCX0gZWxzZSB7DQoJCWlmIChpZnAtPmlmX2ZsYWdzICYg
SUZGX01VTFRJQ0FTVCkgew0KCQkJLyogQWxsb3cgcmVjZWl2aW5nIGZyYW1l
cyB3aXRoIG11bHRpY2FzdCBhZGRyZXNzZXMgKi8NCgkJCXJ4X2N0bCA9IFJY
X0lBX0FDQ0VQVCB8IFJYX0JST0FEQ0FTVF9BQ0NFUFQgfA0KCQkJCSBSWF9P
S19BQ0NFUFQgfCBSWF9NVUxUQ0FTVF9BQ0NFUFQ7DQoJCQkvKg0KCQkJICog
SGVyZSB0aGUgcmVjb25maWd1cmF0aW9uIG9mIGNoaXAncyBtdWx0aWNhc3QN
CgkJCSAqIGZpbHRlcnMgc2hvdWxkIGJlIGRvbmUgYnV0IEkndmUgbm8gaWRl
YSBhYm91dA0KCQkJICogaGFzaCB0cmFuc2Zvcm1hdGlvbiBpbiB0aGlzIGNo
aXAuIElmIHlvdSBjYW4NCgkJCSAqIGFkZCB0aGlzIGNvZGUgb3IgZGVzY3Jp
YmUgbWUgdGhlIHRyYW5zZm9ybWF0aW9uDQoJCQkgKiBJJ2QgYmUgdmVyeSBn
bGFkLg0KCQkJICovDQoJCX0gZWxzZSB7DQoJCQkvKg0KCQkJICogUmVjZWl2
ZSBvbmx5IGdvb2QgZnJhbWVzIGFkZHJlc3NlZCBmb3IgdXMgYW5kDQoJCQkg
KiBnb29kIGJyb2FkY2FzdHMuDQoJCQkgKi8NCgkJCXJ4X2N0bCA9IFJYX0lB
X0FDQ0VQVCB8IFJYX0JST0FEQ0FTVF9BQ0NFUFQgfA0KCQkJCSBSWF9PS19B
Q0NFUFQ7DQoJCX0NCgl9DQoNCgkvKiBTZXQgdXAgdGhlIGZpbHRlciAqLw0K
CWNzX3dyaXRlcmVnKHNjLT5uaWNfYWRkciwgUFBfUnhDVEwsIFJYX0RFRl9B
Q0NFUFQgfCBSWF9NVUxUQ0FTVF9BQ0NFUFQpOw0KDQoJLyogVHVybiBvbiBy
ZWNlaXZlciAqLw0KCWNzX3dyaXRlcmVnKHNjLT5uaWNfYWRkciwgUFBfTGlu
ZUNUTCwNCgkJCWNzX3JlYWRyZWcoc2MtPm5pY19hZGRyLCBQUF9MaW5lQ1RM
KSB8IFNFUklBTF9SWF9PTik7DQp9DQoNCnN0YXRpYyBpbnQNCmNzX2lvY3Rs
KHJlZ2lzdGVyIHN0cnVjdCBpZm5ldCAqaWZwLCBpbnQgY29tbWFuZCwgY2Fk
ZHJfdCBkYXRhKQ0Kew0KCXN0cnVjdCBjc19zb2Z0YyAqc2M9aWZwLT5pZl9z
b2Z0YzsNCglzdHJ1Y3QgaWZyZXEgKmlmciA9IChzdHJ1Y3QgaWZyZXEgKilk
YXRhOw0KCWludCBzLGVycm9yPTA7DQoNCiNpZmRlZiBDU19ERUJVRw0KCXBy
aW50ZihDU19OQU1FIiVkOiBpb2N0bCgleClcbiIsc2MtPmFycGNvbS5hY19p
Zi5pZl91bml0LGNvbW1hbmQpOw0KI2VuZGlmDQoNCglzPXNwbGltcCgpOw0K
DQoJc3dpdGNoIChjb21tYW5kKSB7DQoJY2FzZSBTSU9DU0lGQUREUjoNCglj
YXNlIFNJT0NHSUZBRERSOg0KCWNhc2UgU0lPQ1NJRk1UVToNCgkJZXRoZXJf
aW9jdGwoaWZwLCBjb21tYW5kLCBkYXRhKTsNCgkJYnJlYWs7DQoNCgljYXNl
IFNJT0NTSUZGTEFHUzoNCgkJLyoNCgkJICogU3dpdGNoIGludGVyZmFjZSBz
dGF0ZSBiZXR3ZWVuICJydW5uaW5nIiBhbmQNCgkJICogInN0b3BwZWQiLCBy
ZWZsZWN0aW5nIHRoZSBVUCBmbGFnLg0KICAgICAgICAgICAgICAgICAqLw0K
ICAgICAgICAgICAgICAgIGlmIChzYy0+YXJwY29tLmFjX2lmLmlmX2ZsYWdz
ICYgSUZGX1VQKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoKHNj
LT5hcnBjb20uYWNfaWYuaWZfZmxhZ3MgJiBJRkZfUlVOTklORyk9PTApIHsN
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3NfaW5pdChzYyk7
DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAg
fSBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgoc2MtPmFy
cGNvbS5hY19pZi5pZl9mbGFncyAmIElGRl9SVU5OSU5HKSE9MCkgew0KICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjc19zdG9wKHNjKTsNCiAg
ICAgICAgICAgICAgICAgICAgICAgIH0NCgkJfQ0KCQkvKg0KCQkgKiBQcm9t
aXNjdW91cyBhbmQvb3IgbXVsdGljYXN0IGZsYWdzIG1heSBoYXZlIGNoYW5n
ZWQsDQoJCSAqIHNvIHJlcHJvZ3JhbSB0aGUgbXVsdGljYXN0IGZpbHRlciBh
bmQvb3IgcmVjZWl2ZSBtb2RlLg0KCQkgKg0KCQkgKiBTZWUgbm90ZSBhYm91
dCBtdWx0aWNhc3RzIGluIGNzX3NldG1vZGUNCgkJICovDQoJCWNzX3NldG1v
ZGUoc2MpOw0KCQlicmVhazsNCg0KCWNhc2UgU0lPQ0FERE1VTFRJOg0KCWNh
c2UgU0lPQ0RFTE1VTFRJOg0KCQkvKg0KCQkgKiBVcGRhdGUgb3V0IG11bHRp
Y2FzdCBsaXN0Lg0KCQkgKi8NCiAgICAgICAgICAgICAgICBlcnJvciA9IChj
b21tYW5kID09IFNJT0NBRERNVUxUSSkNCiAgICAgICAgICAgICAgICAgICAg
ICAgID8gZXRoZXJfYWRkbXVsdGkoaWZyLCAmc2MtPmFycGNvbSkNCiAgICAg
ICAgICAgICAgICAgICAgICAgIDogZXRoZXJfZGVsbXVsdGkoaWZyLCAmc2Mt
PmFycGNvbSk7DQoNCiAgICAgICAgICAgICAgICBpZiAoZXJyb3IgPT0gRU5F
VFJFU0VUKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAvKg0KICAgICAg
ICAgICAgICAgICAgICAgICAgICogTXVsdGljYXN0IGxpc3QgaGFzIGNoYW5n
ZWQ7IHNldCB0aGUgaGFyZHdhcmUgZmlsdGVyDQogICAgICAgICAgICAgICAg
ICAgICAgICAgKiBhY2NvcmRpbmdseS4NCiAgICAgICAgICAgICAgICAgICAg
ICAgICAqDQogICAgICAgICAgICAgICAgICAgICAgICAgKiBTZWUgbm90ZSBh
Ym91dCBtdWx0aWNhc3RzIGluIGNzX3NldG1vZGUNCgkJCSAqLw0KICAgICAg
ICAgICAgICAgICAgICAgICAgY3Nfc2V0bW9kZShzYyk7DQogICAgICAgICAg
ICAgICAgICAgICAgICBlcnJvciA9IDA7DQogICAgICAgICAgICAgICAgfQ0K
ICAgICAgICAgICAgICAgIGJyZWFrOw0KDQogICAgICAgIGNhc2UgU0lPQ1NJ
Rk1FRElBOg0KICAgICAgICBjYXNlIFNJT0NHSUZNRURJQToNCiAgICAgICAg
ICAgICAgICBlcnJvciA9IGlmbWVkaWFfaW9jdGwoaWZwLCBpZnIsICZzYy0+
bWVkaWEsIGNvbW1hbmQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KDQog
ICAgICAgIGRlZmF1bHQ6DQoJCWVycm9yID0gRUlOVkFMOw0KICAgICAgICB9
DQoNCgkodm9pZCkgc3BseChzKTsNCglyZXR1cm4gZXJyb3I7DQp9DQoNCi8q
DQogKiBEZXZpY2UgdGltZW91dC93YXRjaGRvZyByb3V0aW5lLiBFbnRlcmVk
IGlmIHRoZSBkZXZpY2UgbmVnbGVjdHMgdG8NCiAqIGdlbmVyYXRlIGFuIGlu
dGVycnVwdCBhZnRlciBhIHRyYW5zbWl0IGhhcyBiZWVuIHN0YXJ0ZWQgb24g
aXQuDQogKi8NCnN0YXRpYyB2b2lkDQpjc193YXRjaGRvZyhzdHJ1Y3QgaWZu
ZXQgKmlmcCkNCnsNCglzdHJ1Y3QgY3Nfc29mdGMgKnNjID0gJmNzX3NvZnRj
W2lmcC0+aWZfdW5pdF07DQoNCglpZnAtPmlmX29lcnJvcnMrKzsNCglsb2co
TE9HX0VSUiwgQ1NfTkFNRSIlZDogZGV2aWNlIHRpbWVvdXRcbiIsIGlmcC0+
aWZfdW5pdCk7DQoNCgkvKiBSZXNldCB0aGUgaW50ZXJmYWNlICovDQoJaWYg
KGlmcC0+aWZfZmxhZ3MgJiBJRkZfVVApDQoJCWNzX3Jlc2V0KHNjKTsNCgll
bHNlDQoJCWNzX3N0b3Aoc2MpOw0KfQ0KDQpzdGF0aWMgaW50DQpjc19tZWRp
YWNoYW5nZShzdHJ1Y3QgaWZuZXQgKmlmcCkNCnsNCglzdHJ1Y3QgY3Nfc29m
dGMgKnNjID0gaWZwLT5pZl9zb2Z0YzsNCglzdHJ1Y3QgaWZtZWRpYSAqaWZt
ID0gJnNjLT5tZWRpYTsNCg0KCWlmIChJRk1fVFlQRShpZm0tPmlmbV9tZWRp
YSkgIT0gSUZNX0VUSEVSKQ0KCQlyZXR1cm4gRUlOVkFMOw0KDQoJcmV0dXJu
IGNzX21lZGlhc2V0KHNjLCBpZm0tPmlmbV9tZWRpYSk7DQp9DQoNCnN0YXRp
YyB2b2lkDQpjc19tZWRpYXN0YXR1cyhzdHJ1Y3QgaWZuZXQgKmlmcCwgc3Ry
dWN0IGlmbWVkaWFyZXEgKmlmbXIpDQp7DQoJaW50IGxpbmVfc3RhdHVzOw0K
CXN0cnVjdCBjc19zb2Z0YyAqc2MgPSBpZnAtPmlmX3NvZnRjOw0KDQoJaWZt
ci0+aWZtX2FjdGl2ZSA9IElGTV9FVEhFUjsNCglsaW5lX3N0YXR1cyA9IGNz
X3JlYWRyZWcoc2MtPm5pY19hZGRyLCBQUF9MaW5lU1QpOw0KCWlmIChsaW5l
X3N0YXR1cyAmIFRFTkJBU0VUX09OKSB7DQoJCWlmbXItPmlmbV9hY3RpdmUg
fD0gSUZNXzEwX1Q7DQoJCWlmIChzYy0+Y2hpcF90eXBlICE9IENTODkwMCkg
ew0KCQkJaWYgKGNzX3JlYWRyZWcoc2MtPm5pY19hZGRyLCBQUF9BdXRvTmVn
U1QpICYgRkRYX0FDVElWRSkNCgkJCQlpZm1yLT5pZm1fYWN0aXZlIHw9IElG
TV9GRFg7DQoJCQlpZiAoY3NfcmVhZHJlZyhzYy0+bmljX2FkZHIsIFBQX0F1
dG9OZWdTVCkgJiBIRFhfQUNUSVZFKQ0KCQkJCWlmbXItPmlmbV9hY3RpdmUg
fD0gSUZNX0hEWDsNCgkJfQ0KCQlpZm1yLT5pZm1fc3RhdHVzID0gSUZNX0FW
QUxJRDsNCgkJaWYgKGxpbmVfc3RhdHVzICYgTElOS19PSykNCgkJCWlmbXIt
PmlmbV9zdGF0dXMgfD0gSUZNX0FDVElWRTsNCgl9IGVsc2Ugew0KCQkvKg0K
CQkgKiBYWFggSSBkb24ndCBrbm93IGlmIHRoaXMgaXMgY29ycmVjdCBvciBu
b3QuDQoJCSAqIElmIEFVSSB3aWxsIGJlIHJlcG9ydGVkIGluc3RlYWQgb2Yg
Qk5DDQogICAgICAgICAgICAgICAgICogdGhlbiB0aGlzIGlzIHdyb25nLg0K
CQkgKi8NCgkJaWYgKGxpbmVfc3RhdHVzICYgQVVJX09OKQ0KCQkJaWZtci0+
aWZtX2FjdGl2ZSB8PSBJRk1fMTBfNTsNCgkJZWxzZQ0KCQkJaWZtci0+aWZt
X2FjdGl2ZSB8PSBJRk1fMTBfMjsNCiNpZmRlZiBDU19CUk9LRU5fQk5DX0RF
VEVDVA0KCQlwcmludGYoQ1NfTkFNRSIlZDogUFBfTGluZVNUOiAlMDJ4IFBQ
X1NlbGZTVDogJTAyeFxuIiwNCgkJCQlpZnAtPmlmX3VuaXQsbGluZV9zdGF0
dXMsDQoJCQkJY3NfcmVhZHJlZyhzYy0+bmljX2FkZHIsUFBfU2VsZlNUKSk7
DQojZW5kaWYNCgl9DQp9DQoNCnN0YXRpYyBpbnQNCmNzX21lZGlhc2V0KHN0
cnVjdCBjc19zb2Z0YyAqc2MsIGludCBtZWRpYSkNCnsNCiAgICAgICAgaW50
IGVycm9yOw0KDQoJLyogU3RvcCB0aGUgcmVjZWl2ZXIgJiB0cmFuc21pdHRl
ciAqLw0KCWNzX3dyaXRlcmVnKHNjLT5uaWNfYWRkciwgUFBfTGluZUNUTCwN
CiAgICAgICAgICAgICAgICAgICAgY3NfcmVhZHJlZyhzYy0+bmljX2FkZHIs
IFBQX0xpbmVDVEwpICYNCgkJICAgIH4oU0VSSUFMX1JYX09OIHwgU0VSSUFM
X1RYX09OKSk7DQoNCiNpZmRlZiBDU19ERUJVRw0KCXByaW50ZihDU19OQU1F
IiVkOiBjc19zZXRtZWRpYSgleClcbiIsc2MtPmFycGNvbS5hY19pZi5pZl91
bml0LG1lZGlhKTsNCiNlbmRpZg0KDQoJc3dpdGNoIChJRk1fU1VCVFlQRSht
ZWRpYSkpIHsNCgljYXNlIElGTV9BVVRPOg0KCQlpZiAoZXJyb3I9ZW5hYmxl
X3RwKHNjKSkNCiAgICAgICAJCWlmIChlcnJvcj1lbmFibGVfYm5jKHNjKSkN
CgkJICAgIGVycm9yPWVuYWJsZV9hdWkoc2MpOw0KCQlicmVhazsNCgljYXNl
IElGTV8xMF9UOg0KCQlpZiAoZXJyb3I9ZW5hYmxlX3RwKHNjKSkNCgkJCWJy
ZWFrOw0KCQlpZiAobWVkaWEgJiBJRk1fRkRYKQ0KCQkJY3NfZHVwbGV4X2Z1
bGwoc2MpOw0KCQllbHNlIGlmIChtZWRpYSAmIElGTV9IRFgpDQoJCQljc19k
dXBsZXhfaGFsZihzYyk7DQoJCWVsc2UNCgkJCWVycm9yID0gY3NfZHVwbGV4
X2F1dG8oc2MpOw0KCQlicmVhazsNCgljYXNlIElGTV8xMF8yOg0KCQllcnJv
ciA9IGVuYWJsZV9ibmMoc2MpOw0KCQlicmVhazsNCgljYXNlIElGTV8xMF81
Og0KCQllcnJvciA9IGVuYWJsZV9hdWkoc2MpOw0KCQlicmVhazsNCgl9DQoN
CgkvKg0KCSAqIFR1cm4gdGhlIHRyYW5zbWl0dGVyICYgcmVjZWl2ZXIgYmFj
ayBvbg0KCSAqLw0KCWNzX3dyaXRlcmVnKHNjLT5uaWNfYWRkciwgUFBfTGlu
ZUNUTCwNCgkJICAgIGNzX3JlYWRyZWcoIHNjLT5uaWNfYWRkciwgUFBfTGlu
ZUNUTCApIHwNCgkJICAgIFNFUklBTF9SWF9PTiB8IFNFUklBTF9UWF9PTik7
IA0KDQoJcmV0dXJuIGVycm9yOw0KfQ0KDQoNCiNpZiBOUE5QID4gMA0KDQpz
dGF0aWMgc3RydWN0IGNzcG5wX2lkcyB7DQoJdV9sb25nCXZlbmRfaWQ7DQoJ
Y2hhciAJKmlkX3N0cjsNCn0gY3NwbnBfaWRzW109IHsNCgl7IDB4NDA2MDYz
MGUsICJDU0M2MDQwIiB9LA0KCXsgMHgxMDEwNGQyNCwgIklCTSBFdGhlckpl
dCIgfSwNCgl7IDAgfQ0KfTsNCg0Kc3RhdGljIGNoYXIgKmNzX3BucF9wcm9i
ZSh1X2xvbmcsIHVfbG9uZyk7DQpzdGF0aWMgdm9pZCBjc19wbnBfYXR0YWNo
KHVfbG9uZywgdV9sb25nLCBjaGFyICosIHN0cnVjdCBpc2FfZGV2aWNlICop
Ow0KDQpzdHJ1Y3QgcG5wX2RldmljZSBjc19wbnAgPSB7DQoJIkNTODkyMCBi
YXNlZCBQblAgRXRoZXJuZXQiLA0KCWNzX3BucF9wcm9iZSwNCgljc19wbnBf
YXR0YWNoLA0KCSZjc191bml0LA0KCSZuZXRfaW1hc2sJLyogaW1hc2sgKi8N
Cn07DQoNCkRBVEFfU0VUIChwbnBkZXZpY2Vfc2V0LCBjc19wbnApOw0KDQpz
dHJ1Y3QgY3NpbnRyX2xpc3Qgew0KCXN0cnVjdCBjc19zb2Z0YyAqc2M7DQoJ
aW50IHVuaXQ7DQoJc3RydWN0IGNzaW50cl9saXN0ICpuZXh0Ow0KfTsNCg0K
c3RhdGljIHN0cnVjdCBjc2ludHJfbGlzdCAqY3NpbnRyX2hlYWQ7DQoNCnN0
YXRpYyB2b2lkIGNzaW50cl9wbnBfYWRkKHN0cnVjdCBjc19zb2Z0YyAqc2Ms
IGludCB1bml0KTsNCnN0YXRpYyB2b2lkIGNzaW50cl9wbnAoaW50IHVuaXQp
Ow0KDQpzdGF0aWMgdm9pZA0KY3NpbnRyX3BucF9hZGQoc3RydWN0IGNzX3Nv
ZnRjICpzYywgaW50IHVuaXQpDQp7DQogICAgc3RydWN0IGNzaW50cl9saXN0
ICppbnRyOw0KDQogICAgaWYgKCFzYykgcmV0dXJuOw0KDQogICAgaW50ciA9
IG1hbGxvYyAoc2l6ZW9mICgqaW50ciksIE1fREVWQlVGLCBNX1dBSVRPSyk7
DQogICAgaWYgKCFpbnRyKSByZXR1cm47DQoNCiAgICBpbnRyLT5zYyA9IHNj
Ow0KICAgIGludHItPnVuaXQgPSB1bml0Ow0KICAgIGludHItPm5leHQgPSBj
c2ludHJfaGVhZDsNCiAgICBjc2ludHJfaGVhZCA9IGludHI7DQp9DQoNCi8q
DQogKiBJbnRlcnJ1cHQgaGFuZGxlciBmb3IgUE5QIGluc3RhbGxlZCBjYXJk
DQogKiBXZSBoYXZlIHRvIGZpbmQgdGhlIG51bWJlciBvZiB0aGUgY2FyZC4N
CiAqLw0Kc3RhdGljIHZvaWQNCmNzaW50cl9wbnAoaW50IHVuaXQpDQp7DQog
ICAgc3RydWN0IGNzX3NvZnRjICpzYzsNCiAgICBzdHJ1Y3QgY3NpbnRyX2xp
c3QgKmludHI7DQoNCiAgICBmb3IgKGludHI9Y3NpbnRyX2hlYWQ7IGludHI7
IGludHI9aW50ci0+bmV4dCkgew0KCSAgICBpZiAoaW50ci0+dW5pdCA9PSB1
bml0KQ0KCQljc2ludHJfc2MoaW50ci0+c2MsIHVuaXQpOw0KCQlicmVhazsN
Cgl9DQp9DQoNCnN0YXRpYyBjaGFyICoNCmNzX3BucF9wcm9iZSh1X2xvbmcg
Y3NuLCB1X2xvbmcgdmVuZF9pZCkNCnsNCiAgICBzdHJ1Y3QgY3NwbnBfaWRz
ICppZHM7DQogICAgY2hhcgkgICAgICpzPU5VTEw7DQoNCiAgICBmb3IoaWRz
ID0gY3NwbnBfaWRzOyBpZHMtPnZlbmRfaWQgIT0gMDsgaWRzKyspIHsNCglp
ZiAodmVuZF9pZCA9PSBpZHMtPnZlbmRfaWQpIHsNCgkgICAgcyA9IGlkcy0+
aWRfc3RyOw0KCSAgICBicmVhazsNCgl9DQogICAgfQ0KDQogICAgaWYgKHMp
IHsNCglzdHJ1Y3QgcG5wX2NpbmZvIGQ7DQoJaW50IGxkbiA9IDA7DQoNCgly
ZWFkX3BucF9wYXJtcygmZCwgbGRuKTsNCglpZiAoZC5lbmFibGUgPT0gMCkg
ew0KCSAgICBwcmludGYoIlRoaXMgaXMgYSAlcywgYnV0IExETiAlZCBpcyBk
aXNhYmxlZFxuIiwgcywgbGRuKTsNCgkgICAgcmV0dXJuIE5VTEwgOw0KCX0N
CglyZXR1cm4gczsNCiAgICB9DQoNCiAgICByZXR1cm4gTlVMTCA7DQp9DQoN
CnN0YXRpYyB2b2lkDQpjc19wbnBfYXR0YWNoKHVfbG9uZyBjc24sIHVfbG9u
ZyB2ZW5kX2lkLCBjaGFyICpuYW1lLA0KCXN0cnVjdCBpc2FfZGV2aWNlICpk
ZXYpDQp7DQoNCiAgICBzdHJ1Y3QgcG5wX2NpbmZvIGQ7DQogICAgaW50CWxk
biA9IDA7DQogICAgaW50IGlvYmFzZSwgdW5pdCwgZmxhZ3M7DQogICAgdV9z
aG9ydCBpcnE7DQogICAgc2hvcnQgZHJxOw0KICAgIHN0cnVjdCBpc2FfZGV2
aWNlICpkdnA7DQogICAgc3RydWN0IGNzX3NvZnRjICpzYyA9IG1hbGxvYyhz
aXplb2YgKnNjLCBNX0RFVkJVRiwgTV9OT1dBSVQpOw0KDQogICAgaWYgKHJl
YWRfcG5wX3Bhcm1zICggJmQgLCBsZG4gKSA9PSAwICkgew0KCXByaW50Zigi
ZmFpbGVkIHRvIHJlYWQgcG5wIHBhcm1zXG4iKTsNCglyZXR1cm47DQogICAg
fQ0KDQogICAgd3JpdGVfcG5wX3Bhcm1zKCAmZCwgbGRuICk7DQogICAgZW5h
YmxlX3BucF9jYXJkKCk7DQoNCiAgICBpb2Jhc2UgPSBkZXYtPmlkX2lvYmFz
ZSA9IGQucG9ydFswXTsNCiAgICBpcnEgPSBkZXYtPmlkX2lycSA9ICgxIDw8
IGQuaXJxWzBdICk7DQogICAgZHJxID0gZGV2LT5pZF9kcnEgPSBkLmRycVsw
XTsNCiAgICBkZXYtPmlkX21hZGRyID0gMDsNCiAgICBkZXYtPmlkX2ludHIg
PSBjc2ludHJfcG5wOw0KICAgIGZsYWdzID0gZGV2LT5pZF9mbGFncyA9IDA7
DQogICAgdW5pdCA9IGRldi0+aWRfdW5pdDsNCg0KICAgIGlmIChkZXYtPmlk
X2RyaXZlciA9PSBOVUxMKSB7DQoJZGV2LT5pZF9kcml2ZXIgPSAmY3Nkcml2
ZXI7DQoJZHZwID0gZmluZF9pc2FkZXYoaXNhX2RldnRhYl9uZXQsICZjc2Ry
aXZlciwgMCk7DQoJaWYgKGR2cCAhPSBOVUxMKQ0KCWRldi0+aWRfaWQgPSBk
dnAtPmlkX2lkOw0KICAgIH0NCg0KICAgIGlmICghc2MpIHJldHVybjsNCg0K
ICAgIGJ6ZXJvKHNjLCBzaXplb2YgKnNjKTsNCiAgICBpZiAoY3NfY3M4OXgw
X3Byb2JlKHNjLCAmaXJxLCAmZHJxLCBpb2Jhc2UsIHVuaXQsIGZsYWdzKSA9
PSAwDQoJfHwgY3NfYXR0YWNoKHNjLCB1bml0LCBmbGFncykgPT0gMCkgew0K
CSAgICBmcmVlKHNjLCBNX0RFVkJVRik7DQogICAgfSBlbHNlIHsNCglpZiAo
KGlycSAhPSBkZXYtPmlkX2lycSkNCgkgICAgfHwgKGRycSAhPSBkZXYtPmlk
X2RycSkNCgkgICAgfHwgKGlvYmFzZSAhPSBkZXYtPmlkX2lvYmFzZSkNCgkg
ICAgfHwgKHVuaXQgIT0gZGV2LT5pZF91bml0KQ0KCSAgICB8fCAoZmxhZ3Mg
IT0gZGV2LT5pZF9mbGFncykNCgkJKSB7DQoJCXByaW50ZigiZmFpbGVkIHRv
IHBucCBjYXJkIHBhcmFtZXRhcnNcbiIpOw0KCX0NCiAgICB9DQogICAgY3Np
bnRyX3BucF9hZGQoc2MsIGRldi0+aWRfdW5pdCk7DQp9DQojZW5kaWYgLyog
TlBOUCAqLw0K
--0-1615265065-900865544=:25782
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="if_csreg.h"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.BSF.3.96.980719202544.25782C@altos.rnd.runnet.ru>
Content-Description: /sys/i386/isa/if_csreg.h

LyoNCiAqIENvcHlyaWdodCAoYykgMTk5NywxOTk4IE1heGltIEJvbG90aW4g
YW5kIE9sZWcgU2hhcm9pa28uDQogKiBBbGwgcmlnaHRzIHJlc2VydmVkLg0K
ICoNCiAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dA0KICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zDQogKiBhcmUgbWV0Og0KICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQNCiAqICAgIG5vdGljZSB1bm1vZGlmaWVkLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucywgYW5kIHRoZSBmb2xsb3dpbmcNCiAqICAgIGRpc2NsYWltZXIu
DQogKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodA0KICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQ0KICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4N
CiAqDQogKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRI
T1IgQU5EIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EDQogKiBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUNCiAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFDQogKiBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBBVVRIT1IgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRQ0KICogRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwNCiAqIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTDQogKiBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikNCiAq
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUDQogKiBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZDQogKiBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GDQogKiBTVUNIIERBTUFHRS4NCiAqDQogKi8NCg0KLyoNCiAqICRJZDog
aWZfY3NyZWcuaCx2IDEuNyAxOTk4LzA3LzE5IDE2OjEzOjM5IHJvb3QgRXhw
IHJvb3QgJA0KICovDQoNCiNkZWZpbmUgUFBfQ2hpcElEIDB4MDAwMAkvKiBv
ZmZzZXQgICAwaCAtPiBDb3JwIC1JRCAgICAgICAgICAgICAgKi8NCgkJCQkv
KiBvZmZzZXQgICAyaCAtPiBNb2RlbC9Qcm9kdWN0IE51bWJlciAgKi8NCgkJ
CQkvKiBvZmZzZXQgICAzaCAtPiBDaGlwIFJldmlzaW9uIE51bWJlciAgKi8N
Cg0KI2RlZmluZSBQUF9JU0FJT0IJCTB4MDAyMAkvKiAgSU8gYmFzZSBhZGRy
ZXNzICovDQojZGVmaW5lCVBQX0NTODkwMF9JU0FJTlQJMHgwMDIyCS8qICBJ
U0EgaW50ZXJydXB0IHNlbGVjdCAqLw0KI2RlZmluZQlQUF9DUzg5MDBfSVNB
RE1BCTB4MDAyNAkvKiAgSVNBIFJlYyBETUEgY2hhbm5lbCAqLw0KI2RlZmlu
ZSBQUF9DUzg5MjBfSVNBSU5UCTB4MDM3MAkvKiAgSVNBIGludGVycnVwdCBz
ZWxlY3QgKi8NCiNkZWZpbmUgUFBfQ1M4OTIwX0lTQURNQSAJMHgwMzc0CS8q
ICBJU0EgUmVjIERNQSBjaGFubmVsICovDQojZGVmaW5lIFBQX0lTQVNPRgkJ
MHgwMDI2CS8qICBJU0EgRE1BIG9mZnNldCAqLw0KI2RlZmluZSBQUF9EbWFG
cmFtZUNudAkJMHgwMDI4CS8qICBJU0EgRE1BIEZyYW1lIGNvdW50ICovDQoj
ZGVmaW5lIFBQX0RtYUJ5dGVDbnQJCTB4MDAyQQkvKiAgSVNBIERNQSBCeXRl
IGNvdW50ICovDQojZGVmaW5lIFBQX0NTODkyMF9JU0FNZW1CCTB4MDM0OAkv
KiAgTWVtb3J5IGJhc2UgKi8NCg0KLyogRUVQUk9NIGRhdGEgYW5kIGNvbW1h
bmQgcmVnaXN0ZXJzICovDQojZGVmaW5lIFBQX0VFQ01ECQkweDAwNDAJLyog
IE5WUiBJbnRlcmZhY2UgQ29tbWFuZCByZWdpc3RlciAqLw0KI2RlZmluZSBQ
UF9FRURhdGEJCTB4MDA0MgkvKiAgTlZSIEludGVyZmFjZSBEYXRhIFJlZ2lz
dGVyICovDQojZGVmaW5lIFBQX0RlYnVnUmVnCQkweDAwNDQJLyogIERlYnVn
IFJlZ2lzdGVyICovDQoNCiNkZWZpbmUgUFBfUnhDRkcJCTB4MDEwMgkvKiAg
UnggQnVzIGNvbmZpZyAqLw0KI2RlZmluZSBQUF9SeENUTAkJMHgwMTA0CS8q
ICBSZWNlaXZlIENvbnRyb2wgUmVnaXN0ZXIgKi8NCiNkZWZpbmUgUFBfVHhD
RkcJCTB4MDEwNgkvKiAgVHJhbnNtaXQgQ29uZmlnIFJlZ2lzdGVyICovDQoj
ZGVmaW5lIFBQX1R4Q01ECQkweDAxMDgJLyogIFRyYW5zbWl0IENvbW1hbmQg
UmVnaXN0ZXIgKi8NCiNkZWZpbmUgUFBfQnVmQ0ZHCQkweDAxMEEJLyogIEJ1
cyBjb25maWd1cmF0aW9uIFJlZ2lzdGVyICovDQojZGVmaW5lIFBQX0xpbmVD
VEwJCTB4MDExMgkvKiAgTGluZSBDb25maWcgUmVnaXN0ZXIgKi8NCiNkZWZp
bmUgUFBfU2VsZkNUTAkJMHgwMTE0CS8qICBTZWxmIENvbW1hbmQgUmVnaXN0
ZXIgKi8NCiNkZWZpbmUgUFBfQnVzQ1RMCQkweDAxMTYJLyogIElTQSBidXMg
Y29udHJvbCBSZWdpc3RlciAqLw0KI2RlZmluZSBQUF9UZXN0Q1RMCQkweDAx
MTgJLyogIFRlc3QgUmVnaXN0ZXIgKi8NCiNkZWZpbmUgUFBfQXV0b05lZ0NU
TAkJMHgwMTFDCS8qICBBdXRvIE5lZ290aWF0aW9uIEN0cmwgKi8NCg0KI2Rl
ZmluZSBQUF9JU1EJCQkweDAxMjAJLyogIEludGVycnVwdCBTdGF0dXMgKi8N
CiNkZWZpbmUgUFBfUnhFdmVudAkJMHgwMTI0CS8qICBSeCBFdmVudCBSZWdp
c3RlciAqLw0KI2RlZmluZSBQUF9UeEV2ZW50CQkweDAxMjgJLyogIFR4IEV2
ZW50IFJlZ2lzdGVyICovDQojZGVmaW5lIFBQX0J1ZkV2ZW50CQkweDAxMkMJ
LyogIEJ1cyBFdmVudCBSZWdpc3RlciAqLw0KI2RlZmluZSBQUF9SeE1pc3MJ
CTB4MDEzMAkvKiAgUmVjZWl2ZSBNaXNzIENvdW50ICovDQojZGVmaW5lIFBQ
X1R4Q29sCQkweDAxMzIJLyogIFRyYW5zbWl0IENvbGxpc2lvbiBDb3VudCAq
Lw0KI2RlZmluZSBQUF9MaW5lU1QJCTB4MDEzNAkvKiAgTGluZSBTdGF0ZSBS
ZWdpc3RlciAqLw0KI2RlZmluZSBQUF9TZWxmU1QJCTB4MDEzNgkvKiAgU2Vs
ZiBTdGF0ZSByZWdpc3RlciAqLw0KI2RlZmluZSBQUF9CdXNTVAkJMHgwMTM4
CS8qICBCdXMgU3RhdHVzICovDQojZGVmaW5lIFBQX1REUgkJCTB4MDEzQwkv
KiAgVGltZSBEb21haW4gUmVmbGVjdG9tZXRyeSAqLw0KI2RlZmluZSBQUF9B
dXRvTmVnU1QJCTB4MDEzRQkvKiAgQXV0byBOZWcgU3RhdHVzICovDQojZGVm
aW5lIFBQX1R4Q29tbWFuZAkJMHgwMTQ0CS8qICBUeCBDb21tYW5kICovDQoj
ZGVmaW5lIFBQX1R4TGVuZ3RoCQkweDAxNDYJLyogIFR4IExlbmd0aCAqLw0K
I2RlZmluZSBQUF9MQUYJCQkweDAxNTAJLyogIEhhc2ggVGFibGUgKi8NCiNk
ZWZpbmUgUFBfSUEJCQkweDAxNTgJLyogIFBoeXNpY2FsIEFkZHJlc3MgUmVn
aXN0ZXIgKi8NCg0KI2RlZmluZSBQUF9SeFN0YXR1cwkJMHgwNDAwCS8qICBS
ZWNlaXZlIHN0YXJ0IG9mIGZyYW1lICovDQojZGVmaW5lIFBQX1J4TGVuZ3Ro
CQkweDA0MDIJLyogIFJlY2VpdmUgTGVuZ3RoIG9mIGZyYW1lICovDQojZGVm
aW5lIFBQX1J4RnJhbWUJCTB4MDQwNAkvKiAgUmVjZWl2ZSBmcmFtZSBwb2lu
dGVyICovDQojZGVmaW5lIFBQX1R4RnJhbWUJCTB4MEEwMAkvKiAgVHJhbnNt
aXQgZnJhbWUgcG9pbnRlciAqLw0KDQovKg0KICogIFByaW1hcnkgSS9PIEJh
c2UgQWRkcmVzcy4gSWYgbm8gSS9PIGJhc2UgaXMgc3VwcGxpZWQgYnkgdGhl
IHVzZXIsIHRoZW4gdGhpcw0KICogIGNhbiBiZSB1c2VkIGFzIHRoZSBkZWZh
dWx0IEkvTyBiYXNlIHRvIGFjY2VzcyB0aGUgUGFja2V0UGFnZSBBcmVhLg0K
ICovDQojZGVmaW5lIERFRkFVTFRJT0JBU0UJCTB4MDMwMA0KI2RlZmluZSBG
SVJTVF9JTwkJMHgwMjBDCS8qICBGaXJzdCBJL08gcG9ydCB0byBjaGVjayAq
Lw0KI2RlZmluZSBMQVNUX0lPCQkJMHgwMzdDCS8qICBMYXN0IEkvTyBwb3J0
IHRvIGNoZWNrICgrMTBoKSAqLw0KI2RlZmluZSBBRERfTUFTSwkJMHgzMDAw
CS8qICBNYXNrIGl0IHVzZSBvZiB0aGUgQUREX1BPUlQgcmVnaXN0ZXIgKi8N
CiNkZWZpbmUgQUREX1NJRwkJCTB4MzAwMAkvKiAgRXhwZWN0ZWQgSUQgc2ln
bmF0dXJlICovDQoNCiNkZWZpbmUgQ0hJUF9FSVNBX0lEX1NJRwkweDYzMEUJ
LyogIFByb2R1Y3QgSUQgQ29kZSBmb3IgQ3J5c3RhbCBDaGlwIChDUzg5MDAg
c3BlYyA0LjMpICovDQoNCiNkZWZpbmUgUFJPRFVDVF9JRF9BREQJCTB4MDAw
MgkvKiAgQWRkcmVzcyBvZiBwcm9kdWN0IElEICovDQoNCi8qICBNYXNrIHRv
IGZpbmQgb3V0IHRoZSB0eXBlcyBvZiAgcmVnaXN0ZXJzICovDQojZGVmaW5l
IFJFR19UWVBFX01BU0sJCTB4MDAxRg0KDQovKiAgRWVwcm9tIENvbW1hbmRz
ICovDQojZGVmaW5lIEVSU0VfV1JfRU5CTAkJMHgwMEYwDQojZGVmaW5lIEVS
U0VfV1JfRElTQUJMRQkJMHgwMDAwDQoNCi8qICBEZWZpbmVzIENvbnRyb2wv
Q29uZmlnIHJlZ2lzdGVyIHF1aW50dXBsZXQgbnVtYmVycyAqLw0KI2RlZmlu
ZSBSWF9CVUZfQ0ZHCQkweDAwMDMNCiNkZWZpbmUgUlhfQ09OVFJPTAkJMHgw
MDA1DQojZGVmaW5lIFRYX0NGRwkJCTB4MDAwNw0KI2RlZmluZSBUWF9DT01N
QU5ECQkweDAwMDkNCiNkZWZpbmUgQlVGX0NGRwkJCTB4MDAwQg0KI2RlZmlu
ZSBMSU5FX0NPTlRST0wJCTB4MDAxMw0KI2RlZmluZSBTRUxGX0NPTlRST0wJ
CTB4MDAxNQ0KI2RlZmluZSBCVVNfQ09OVFJPTAkJMHgwMDE3DQojZGVmaW5l
IFRFU1RfQ09OVFJPTAkJMHgwMDE5DQoNCi8qICBEZWZpbmVzIFN0YXR1cy9D
b3VudCByZWdpc3RlcnMgcXVpbnR1cGxldCBudW1iZXJzICovDQojZGVmaW5l
IFJYX0VWRU5UCQkweDAwMDQNCiNkZWZpbmUgVFhfRVZFTlQJCTB4MDAwOA0K
I2RlZmluZSBCVUZfRVZFTlQJCTB4MDAwQw0KI2RlZmluZSBSWF9NSVNTX0NP
VU5UCQkweDAwMTANCiNkZWZpbmUgVFhfQ09MX0NPVU5UCQkweDAwMTINCiNk
ZWZpbmUgTElORV9TVEFUVVMJCTB4MDAxNA0KI2RlZmluZSBTRUxGX1NUQVRV
UwkJMHgwMDE2DQojZGVmaW5lIEJVU19TVEFUVVMJCTB4MDAxOA0KI2RlZmlu
ZSBURFIJCQkweDAwMUMNCg0KLyoNCiAqIFBQX1J4Q0ZHIC0gUmVjZWl2ZSAg
Q29uZmlndXJhdGlvbiBhbmQgSW50ZXJydXB0IE1hc2sNCiAqCQkJIGJpdCBk
ZWZpbml0aW9uIC0gIFJlYWQvd3JpdGUNCiAqLw0KI2RlZmluZSBTS0lQXzEJ
CQkweDAwNDANCiNkZWZpbmUgUlhfU1RSRUFNX0VOQkwJCTB4MDA4MA0KI2Rl
ZmluZSBSWF9PS19FTkJMCQkweDAxMDANCiNkZWZpbmUgUlhfRE1BX09OTFkJ
CTB4MDIwMA0KI2RlZmluZSBBVVRPX1JYX0RNQQkJMHgwNDAwDQojZGVmaW5l
IEJVRkZFUl9DUkMJCTB4MDgwMA0KI2RlZmluZSBSWF9DUkNfRVJST1JfRU5C
TAkweDEwMDANCiNkZWZpbmUgUlhfUlVOVF9FTkJMCQkweDIwMDANCiNkZWZp
bmUgUlhfRVhUUkFfREFUQV9FTkJMCTB4NDAwMA0KDQovKiBQUF9SeENUTCAt
IFJlY2VpdmUgQ29udHJvbCBiaXQgZGVmaW5pdGlvbiAtIFJlYWQvd3JpdGUg
Ki8NCiNkZWZpbmUgUlhfSUFfSEFTSF9BQ0NFUFQJMHgwMDQwDQojZGVmaW5l
IFJYX1BST01fQUNDRVBUCQkweDAwODANCiNkZWZpbmUgUlhfT0tfQUNDRVBU
CQkweDAxMDANCiNkZWZpbmUgUlhfTVVMVENBU1RfQUNDRVBUCTB4MDIwMA0K
I2RlZmluZSBSWF9JQV9BQ0NFUFQJCTB4MDQwMA0KI2RlZmluZSBSWF9CUk9B
RENBU1RfQUNDRVBUCTB4MDgwMA0KI2RlZmluZSBSWF9CQURfQ1JDX0FDQ0VQ
VAkweDEwMDANCiNkZWZpbmUgUlhfUlVOVF9BQ0NFUFQJCTB4MjAwMA0KI2Rl
ZmluZSBSWF9FWFRSQV9EQVRBX0FDQ0VQVAkweDQwMDANCiNkZWZpbmUgUlhf
QUxMX0FDQ0VQVAkJKFJYX1BST01fQUNDRVBUIHwgUlhfQkFEX0NSQ19BQ0NF
UFQgfAlcDQoJCQkJIFJYX1JVTlRfQUNDRVBUIHwgUlhfRVhUUkFfREFUQV9B
Q0NFUFQpDQovKg0KICogIERlZmF1bHQgcmVjZWl2ZSBtb2RlIC0gaW5kaXZp
ZHVhbGx5IGFkZHJlc3NlZCwgYnJvYWRjYXN0LCBhbmQgZXJyb3IgZnJlZQ0K
ICovDQojZGVmaW5lIFJYX0RFRl9BQ0NFUFQgKFJYX0lBX0FDQ0VQVCB8IFJY
X0JST0FEQ0FTVF9BQ0NFUFQgfCBSWF9PS19BQ0NFUFQpDQoNCi8qDQogKiBQ
UF9UeENGRyAtIFRyYW5zbWl0IENvbmZpZ3VyYXRpb24gSW50ZXJydXB0IE1h
c2sNCiAqCQkJIGJpdCBkZWZpbml0aW9uIC0gUmVhZC93cml0ZQ0KICovDQoj
ZGVmaW5lIFRYX0xPU1RfQ1JTX0VOQkwJMHgwMDQwDQojZGVmaW5lIFRYX1NR
RV9FUlJPUl9FTkJMCTB4MDA4MA0KI2RlZmluZSBUWF9PS19FTkJMCQkweDAx
MDANCiNkZWZpbmUgVFhfTEFURV9DT0xfRU5CTAkweDAyMDANCiNkZWZpbmUg
VFhfSkJSX0VOQkwJCTB4MDQwMA0KI2RlZmluZSBUWF9BTllfQ09MX0VOQkwJ
CTB4MDgwMA0KI2RlZmluZSBUWF8xNl9DT0xfRU5CTAkJMHg4MDAwDQoNCi8q
DQogKiBQUF9UeENNRCAtIFRyYW5zbWl0IENvbW1hbmQgYml0IGRlZmluaXRp
b24gLSBSZWFkLW9ubHkNCiAqLw0KI2RlZmluZSBUWF9TVEFSVF80X0JZVEVT
CTB4MDAwMA0KI2RlZmluZSBUWF9TVEFSVF82NF9CWVRFUwkweDAwNDANCiNk
ZWZpbmUgVFhfU1RBUlRfMTI4X0JZVEVTCTB4MDA4MA0KI2RlZmluZSBUWF9T
VEFSVF9BTExfQllURVMJMHgwMEMwDQojZGVmaW5lIFRYX0ZPUkNFCQkweDAx
MDANCiNkZWZpbmUgVFhfT05FX0NPTAkJMHgwMjAwDQojZGVmaW5lIFRYX1RX
T19QQVJUX0RFRkZfRElTQUJMRSAweDA0MDANCiNkZWZpbmUgVFhfTk9fQ1JD
CQkweDEwMDANCiNkZWZpbmUgVFhfUlVOVAkJCTB4MjAwMA0KDQovKg0KICog
UFBfQnVmQ0ZHIC0gQnVmZmVyIENvbmZpZ3VyYXRpb24gSW50ZXJydXB0IE1h
c2sNCiAqCQkJIGJpdCBkZWZpbml0aW9uIC0gUmVhZC93cml0ZQ0KICovDQoj
ZGVmaW5lIEdFTkVSQVRFX1NXX0lOVEVSUlVQVAkweDAwNDANCiNkZWZpbmUg
UlhfRE1BX0VOQkwJCTB4MDA4MA0KI2RlZmluZSBSRUFEWV9GT1JfVFhfRU5C
TAkweDAxMDANCiNkZWZpbmUgVFhfVU5ERVJSVU5fRU5CTAkweDAyMDANCiNk
ZWZpbmUgUlhfTUlTU19FTkJMCQkweDA0MDANCiNkZWZpbmUgUlhfMTI4X0JZ
VEVfRU5CTAkweDA4MDANCiNkZWZpbmUgVFhfQ09MX0NPVU5UX09WUkZMT1df
RU5CTCAweDEwMDANCiNkZWZpbmUgUlhfTUlTU19DT1VOVF9PVlJGTE9XX0VO
QkwgMHgyMDAwDQojZGVmaW5lIFJYX0RFU1RfTUFUQ0hfRU5CTAkweDgwMDAN
Cg0KLyoNCiAqIFBQX0xpbmVDVEwgLSBMaW5lIENvbnRyb2wgYml0IGRlZmlu
aXRpb24gLSBSZWFkL3dyaXRlDQogKi8NCiNkZWZpbmUgU0VSSUFMX1JYX09O
CQkweDAwNDANCiNkZWZpbmUgU0VSSUFMX1RYX09OCQkweDAwODANCiNkZWZp
bmUgQVVJX09OTFkJCTB4MDEwMA0KI2RlZmluZSBBVVRPX0FVSV8xMEJBU0VU
CTB4MDIwMA0KI2RlZmluZSBNT0RJRklFRF9CQUNLT0ZGCTB4MDgwMA0KI2Rl
ZmluZSBOT19BVVRPX1BPTEFSSVRZCTB4MTAwMA0KI2RlZmluZSBUV09fUEFS
VF9ERUZESVMJCTB4MjAwMA0KI2RlZmluZSBMT1dfUlhfU1FVRUxDSAkJMHg0
MDAwDQoNCi8qDQogKiBQUF9TZWxmQ1RMIC0gU29mdHdhcmUgU2VsZiBDb250
cm9sIGJpdCBkZWZpbml0aW9uIC0gUmVhZC93cml0ZQ0KICovDQojZGVmaW5l
IFBPV0VSX09OX1JFU0VUCQkweDAwNDANCiNkZWZpbmUgU1dfU1RPUAkJCTB4
MDEwMA0KI2RlZmluZSBTTEVFUF9PTgkJMHgwMjAwDQojZGVmaW5lIEFVVE9f
V0FLRVVQCQkweDA0MDANCiNkZWZpbmUgSENCMF9FTkJMCQkweDEwMDANCiNk
ZWZpbmUgSENCMV9FTkJMCQkweDIwMDANCiNkZWZpbmUgSENCMAkJCTB4NDAw
MA0KI2RlZmluZSBIQ0IxCQkJMHg4MDAwDQoNCi8qDQogKiBQUF9CdXNDVEwg
LSBJU0EgQnVzIENvbnRyb2wgYml0IGRlZmluaXRpb24gLSBSZWFkL3dyaXRl
DQogKi8NCiNkZWZpbmUgUkVTRVRfUlhfRE1BCQkweDAwNDANCiNkZWZpbmUg
TUVNT1JZX09OCQkweDA0MDANCiNkZWZpbmUgRE1BX0JVUlNUX01PREUJCTB4
MDgwMA0KI2RlZmluZSBJT19DSEFOTkVMX1JFQURZX09OCTB4MTAwMA0KI2Rl
ZmluZSBSWF9ETUFfU0laRV82NEtzCTB4MjAwMA0KI2RlZmluZSBFTkFCTEVf
SVJRCQkweDgwMDANCg0KLyoNCiAqIFBQX1Rlc3RDVEwgLSBUZXN0IENvbnRy
b2wgYml0IGRlZmluaXRpb24gLSBSZWFkL3dyaXRlDQogKi8NCiNkZWZpbmUg
TElOS19PRkYJCTB4MDA4MA0KI2RlZmluZSBFTkRFQ19MT09QQkFDSwkJMHgw
MjAwDQojZGVmaW5lIEFVSV9MT09QQkFDSwkJMHgwNDAwDQojZGVmaW5lIEJB
Q0tPRkZfT0ZGCQkweDA4MDANCiNkZWZpbmUgRkFTVF9URVNUCQkweDgwMDAN
Cg0KLyoNCiAqIFBQX1J4RXZlbnQgLSBSZWNlaXZlIEV2ZW50IEJpdCBkZWZp
bml0aW9uIC0gUmVhZC1vbmx5DQogKi8NCiNkZWZpbmUgUlhfSUFfSEFTSEVE
CQkweDAwNDANCiNkZWZpbmUgUlhfRFJJQkJMRQkJMHgwMDgwDQojZGVmaW5l
IFJYX09LCQkJMHgwMTAwDQojZGVmaW5lIFJYX0hBU0hFRAkJMHgwMjAwDQoj
ZGVmaW5lIFJYX0lBCQkJMHgwNDAwDQojZGVmaW5lIFJYX0JST0FEQ0FTVAkJ
MHgwODAwDQojZGVmaW5lIFJYX0NSQ19FUlJPUgkJMHgxMDAwDQojZGVmaW5l
IFJYX1JVTlQJCQkweDIwMDANCiNkZWZpbmUgUlhfRVhUUkFfREFUQQkJMHg0
MDAwDQoNCiNkZWZpbmUgSEFTSF9JTkRFWF9NQVNLCQkweDBGQzAwDQoNCi8q
DQogKiBQUF9UeEV2ZW50IC0gVHJhbnNtaXQgRXZlbnQgQml0IGRlZmluaXRp
b24gLSBSZWFkLW9ubHkNCiAqLw0KI2RlZmluZSBUWF9MT1NUX0NSUwkJMHgw
MDQwDQojZGVmaW5lIFRYX1NRRV9FUlJPUgkJMHgwMDgwDQojZGVmaW5lIFRY
X09LCQkJMHgwMTAwDQojZGVmaW5lIFRYX0xBVEVfQ09MCQkweDAyMDANCiNk
ZWZpbmUgVFhfSkJSCQkJMHgwNDAwDQojZGVmaW5lIFRYXzE2X0NPTAkJMHg4
MDAwDQojZGVmaW5lIFRYX1NFTkRfT0tfQklUUwkJKFRYX09LIHwgVFhfTE9T
VF9DUlMpDQojZGVmaW5lIFRYX0NPTF9DT1VOVF9NQVNLCTB4NzgwMA0KDQov
Kg0KICogUFBfQnVmRXZlbnQgLSBCdWZmZXIgRXZlbnQgQml0IGRlZmluaXRp
b24gLSBSZWFkLW9ubHkNCiAqLw0KI2RlZmluZSBTV19JTlRFUlJVUFQJCTB4
MDA0MA0KI2RlZmluZSBSWF9ETUEJCQkweDAwODANCiNkZWZpbmUgUkVBRFlf
Rk9SX1RYCQkweDAxMDANCiNkZWZpbmUgVFhfVU5ERVJSVU4JCTB4MDIwMA0K
I2RlZmluZSBSWF9NSVNTCQkJMHgwNDAwDQojZGVmaW5lIFJYXzEyOF9CWVRF
CQkweDA4MDANCiNkZWZpbmUgVFhfQ09MX09WUkZMVwkJMHgxMDAwDQojZGVm
aW5lIFJYX01JU1NfT1ZSRkxXCQkweDIwMDANCiNkZWZpbmUgUlhfREVTVF9N
QVRDSAkJMHg4MDAwDQoNCi8qDQogKiBQUF9MaW5lU1QgLSBFdGhlcm5ldCBM
aW5lIFN0YXR1cyBiaXQgZGVmaW5pdGlvbiAtIFJlYWQtb25seQ0KICovDQoj
ZGVmaW5lIExJTktfT0sJCQkweDAwODANCiNkZWZpbmUgQVVJX09OCQkJMHgw
MTAwDQojZGVmaW5lIFRFTkJBU0VUX09OCQkweDAyMDANCiNkZWZpbmUgUE9M
QVJJVFlfT0sJCTB4MTAwMA0KI2RlZmluZSBDUlNfT0sJCQkweDQwMDANCg0K
LyoNCiAqIFBQX1NlbGZTVCAtIENoaXAgU29mdHdhcmUgU3RhdHVzIGJpdCBk
ZWZpbml0aW9uDQogKi8NCiNkZWZpbmUgQUNUSVZFXzMzVgkJMHgwMDQwDQoj
ZGVmaW5lIElOSVRfRE9ORQkJMHgwMDgwDQojZGVmaW5lIFNJX0JVU1kJCQkw
eDAxMDANCiNkZWZpbmUgRUVQUk9NX1BSRVNFTlQJCTB4MDIwMA0KI2RlZmlu
ZSBFRVBST01fT0sJCTB4MDQwMA0KI2RlZmluZSBFTF9QUkVTRU5UCQkweDA4
MDANCiNkZWZpbmUgRUVfU0laRV82NAkJMHgxMDAwDQoNCi8qDQogKiBQUF9C
dXNTVCAtIElTQSBCdXMgU3RhdHVzIGJpdCBkZWZpbml0aW9uDQogKi8NCiNk
ZWZpbmUgVFhfQklEX0VSUk9SCQkweDAwODANCiNkZWZpbmUgUkVBRFlfRk9S
X1RYX05PVwkweDAxMDANCg0KLyoNCiAqIFBQX0F1dG9OZWdDVEwgLSBBdXRv
IE5lZ290aWF0aW9uIENvbnRyb2wgYml0IGRlZmluaXRpb24NCiAqLw0KI2Rl
ZmluZSBSRV9ORUdfTk9XCQkweDAwNDANCiNkZWZpbmUgQUxMT1dfRkRYCQkw
eDAwODANCiNkZWZpbmUgQVVUT19ORUdfRU5BQkxFCQkweDAxMDANCiNkZWZp
bmUgTkxQX0VOQUJMRQkJMHgwMjAwDQojZGVmaW5lIEZPUkNFX0ZEWAkJMHg4
MDAwDQojZGVmaW5lIEFVVE9fTkVHX0JJVFMJCShGT1JDRV9GRFggfCBOTFBf
RU5BQkxFIHwgQVVUT19ORUdfRU5BQkxFKQ0KI2RlZmluZSBBVVRPX05FR19N
QVNLCQkoRk9SQ0VfRkRYIHwgTkxQX0VOQUJMRSB8IEFVVE9fTkVHX0VOQUJM
RSB8IFwNCgkJCQkgQUxMT1dfRkRYIHwgUkVfTkVHX05PVykNCg0KLyoNCiAq
IFBQX0F1dG9OZWdTVCAtIEF1dG8gTmVnb3RpYXRpb24gU3RhdHVzIGJpdCBk
ZWZpbml0aW9uDQogKi8NCiNkZWZpbmUgQVVUT19ORUdfQlVTWQkJMHgwMDgw
DQojZGVmaW5lIEZMUF9MSU5LCQkweDAxMDANCiNkZWZpbmUgRkxQX0xJTktf
R09PRAkJMHgwODAwDQojZGVmaW5lIExJTktfRkFVTFQJCTB4MTAwMA0KI2Rl
ZmluZSBIRFhfQUNUSVZFCQkweDQwMDANCiNkZWZpbmUgRkRYX0FDVElWRQkJ
MHg4MDAwDQoNCi8qDQogKiBUaGUgZm9sbG93aW5nIGJsb2NrIGRlZmluZXMg
dGhlIElTUSBldmVudCB0eXBlcw0KICovDQojZGVmaW5lIElTUV9SRUNFSVZF
Ul9FVkVOVAkweDA0DQojZGVmaW5lIElTUV9UUkFOU01JVFRFUl9FVkVOVAkw
eDA4DQojZGVmaW5lIElTUV9CVUZGRVJfRVZFTlQJMHgwYw0KI2RlZmluZSBJ
U1FfUlhfTUlTU19FVkVOVAkweDEwDQojZGVmaW5lIElTUV9UWF9DT0xfRVZF
TlQJMHgxMg0KDQojZGVmaW5lIElTUV9FVkVOVF9NQVNLCQkweDAwM0YJLyog
SVNRIG1hc2sgdG8gZmluZCBvdXQgdHlwZSBvZiBldmVudCAqLw0KI2RlZmlu
ZSBJU1FfSElTVAkJMTYJLyogc21hbGwgaGlzdG9yeSBidWZmZXIgKi8NCiNk
ZWZpbmUgQVVUT0lOQ1JFTUVOVAkJMHg4MDAwCS8qIEJpdCBtYXNrIHRvIHNl
dCBiaXQtMTUgZm9yIGF1dG9pbmNyZW1lbnQgKi8NCg0KI2RlZmluZSBUWFJY
QlVGU0laRQkJMHgwNjAwDQojZGVmaW5lIFJYRE1BQlVGU0laRQkJMHg4MDAw
DQojZGVmaW5lIFJYRE1BU0laRQkJMHg0MDAwDQojZGVmaW5lIFRYUlhfTEVO
R1RIX01BU0sJMHgwN0ZGDQoNCi8qICByeCBvcHRpb25zIGJpdHMgKi8NCiNk
ZWZpbmUgUkNWX1dJVEhfUlhPTgkJMSAgICAgICAvKiAgU2V0IFNlclJ4IE9O
ICovDQojZGVmaW5lIFJDVl9DT1VOVFMJCTIgICAgICAgLyogIFVzZSBGcmFt
ZWNudDEgKi8NCiNkZWZpbmUgUkNWX1BPTkcJCTQgICAgICAgLyogIFBvbmcg
cmVzcG9uZGVudCAqLw0KI2RlZmluZSBSQ1ZfRE9ORwkJOCAgICAgICAvKiAg
RG9uZyBvcGVyYXRpb24gKi8NCiNkZWZpbmUgUkNWX1BPTExJTkcJCTB4MTAJ
LyogIFBvbGwgUnhFdmVudCAqLw0KI2RlZmluZSBSQ1ZfSVNRCQkJMHgyMAkv
KiAgVXNlIElTUSwgaW50ICovDQojZGVmaW5lIFJDVl9BVVRPX0RNQQkJMHgx
MDAJLyogIFNldCBBdXRvUnhETUFFICovDQojZGVmaW5lIFJDVl9ETUEJCQkw
eDIwMAkvKiAgU2V0IFJ4RE1BIG9ubHkgKi8NCiNkZWZpbmUgUkNWX0RNQV9B
TEwJCTB4NDAwCS8qICBDb3B5IGFsbCBETUEnZWQgKi8NCiNkZWZpbmUgUkNW
X0ZJWEVEX0RBVEEJCTB4ODAwCS8qICBFdmVyeSBmcmFtZSBzYW1lICovDQoj
ZGVmaW5lIFJDVl9JTwkJCTB4MTAwMAkvKiAgVXNlIElTQSBJTyBvbmx5ICov
DQojZGVmaW5lIFJDVl9NRU1PUlkJCTB4MjAwMAkvKiAgVXNlIElTQSBNZW1v
cnkgKi8NCg0KI2RlZmluZSBSQU1fU0laRQkJMHgxMDAwICAgICAgLyogIFRo
ZSBjYXJkIGhhcyA0ayBieXRlcyBvciBSQU0gKi8NCiNkZWZpbmUgUEtUX1NU
QVJUCQlQUF9UeEZyYW1lICAvKiAgU3RhcnQgb2YgcGFja2V0IFJBTSAqLw0K
DQojZGVmaW5lIFJYX0ZSQU1FX1BPUlQJCTB4MDAwMA0KI2RlZmluZSBUWF9G
UkFNRV9QT1JUCQlSWF9GUkFNRV9QT1JUDQojZGVmaW5lIFRYX0NNRF9QT1JU
CQkweDAwMDQNCiNkZWZpbmUgVFhfQ1M4OTAwX05PVwkJMHgwMDAwICAvKiBU
eCBwYWNrZXQgYWZ0ZXIgICA1IGJ5dGVzIGNvcGllZCAqLw0KI2RlZmluZSBU
WF9DUzg5MDBfQUZURVJfMzgxCTB4MDAyMCAgLyogVHggcGFja2V0IGFmdGVy
IDM4MSBieXRlcyBjb3BpZWQgKi8NCiNkZWZpbmUgVFhfQ1M4OTAwX0FGVEVS
X0FMTAkweDAwNjAgIC8qIFR4IHBhY2tldCBhZnRlciBhbGwgYnl0ZXMgY29w
aWVkICovDQojZGVmaW5lIFRYX0NTODkyMF9OT1cJCTB4MDAwMCAgLyogVHgg
cGFja2V0IGFmdGVyICAgNSBieXRlcyBjb3BpZWQgKi8NCiNkZWZpbmUgVFhf
Q1M4OTIwX0FGVEVSXzM4MQkweDAwNDAgIC8qIFR4IHBhY2tldCBhZnRlciAz
ODEgYnl0ZXMgY29waWVkICovDQojZGVmaW5lIFRYX0NTODkyMF9BRlRFUl8x
MDIxCTB4MDA4MCAgLyogVHggcGFja2V0IGFmdGVyMTAyMSBieXRlcyBjb3Bp
ZWQgKi8NCiNkZWZpbmUgVFhfQ1M4OTIwX0FGVEVSX0FMTAkweDAwQzAgIC8q
IFR4IHBhY2tldCBhZnRlciBhbGwgYnl0ZXMgY29waWVkICovDQojZGVmaW5l
IFRYX0xFTl9QT1JUCQkweDAwMDYNCiNkZWZpbmUgSVNRX1BPUlQJCTB4MDAw
OA0KI2RlZmluZSBBRERfUE9SVAkJMHgwMDBBDQojZGVmaW5lIERBVEFfUE9S
VAkJMHgwMDBDDQoNCiNkZWZpbmUgRUVQUk9NX1dSSVRFX0VOCQkweDAwRjAN
CiNkZWZpbmUgRUVQUk9NX1dSSVRFX0RJUwkweDAwMDANCiNkZWZpbmUgRUVQ
Uk9NX1dSSVRFX0NNRAkweDAxMDANCiNkZWZpbmUgRUVQUk9NX1JFQURfQ01E
CQkweDAyMDANCg0KLyogIFJlY2VpdmUgSGVhZGVyDQogKiAgRGVzY3JpcHRp
b24gb2YgaGVhZGVyIG9mIGVhY2ggcGFja2V0IGluIHJlY2VpdmUgYXJlYSBv
ZiBtZW1vcnkNCiAqLw0KI2RlZmluZSBSQlVGX0VWRU5UX0xPVwkwICAvKiBM
b3cgYnl0ZSBvZiBSeEV2ZW50IC0gc3RhdHVzIG9mIHJlY2VpdmVkIGZyYW1l
ICovDQojZGVmaW5lIFJCVUZfRVZFTlRfSElHSAkxICAvKiBIaWdoIGJ5dGUg
b2YgUnhFdmVudCAtIHN0YXR1cyBvZiByZWNlaXZlZCBmcmFtZSAqLw0KI2Rl
ZmluZSBSQlVGX0xFTl9MT1cJMiAgLyogTGVuZ3RoIG9mIHJlY2VpdmVkIGRh
dGEgLSBsb3cgYnl0ZSAqLw0KI2RlZmluZSBSQlVGX0xFTl9ISQkzICAvKiBM
ZW5ndGggb2YgcmVjZWl2ZWQgZGF0YSAtIGhpZ2ggYnl0ZSAqLw0KI2RlZmlu
ZSBSQlVGX0hFQURfTEVOCTQgIC8qIExlbmd0aCBvZiB0aGlzIGhlYWRlciAq
Lw0KDQojZGVmaW5lIENISVBfUkVBRCAweDEgIC8qIFVzZWQgdG8gbWFyayBz
dGF0ZSBvZiB0aGUgcmVwaW5zIGNvZGUgKGNoaXAgb3IgZG1hKSAqLw0KI2Rl
ZmluZSBETUFfUkVBRCAgMHgyICAvKiBVc2VkIHRvIG1hcmsgc3RhdGUgb2Yg
dGhlIHJlcGlucyBjb2RlIChjaGlwIG9yIGRtYSkgKi8NCg0KLyogIGZvciBi
aW9zIHNjYW4gKi8NCi8qICAqLw0KI2lmZGVmIENTREVCVUcNCi8qICB1c2Ug
dGhlc2UgdmFsdWVzIGZvciBkZWJ1Z2dpbmcgYmlvcyBzY2FuICovDQojZGVm
aW5lIEJJT1NfU1RBUlRfU0VHCQkweDAwMDAwDQojZGVmaW5lIEJJT1NfT0ZG
U0VUX0lOQwkJMHgwMDEwDQojZWxzZQ0KI2RlZmluZSBCSU9TX1NUQVJUX1NF
RwkJMHgwYzAwMA0KI2RlZmluZSBCSU9TX09GRlNFVF9JTkMJCTB4MDIwMA0K
I2VuZGlmDQoNCiNkZWZpbmUgQklPU19MQVNUX09GRlNFVAkweDBmYzAwDQoN
Ci8qDQogKiAgQnl0ZSBvZmZzZXRzIGludG8gdGhlIEVFUFJPTSBjb25maWd1
cmF0aW9uIGJ1ZmZlcg0KICovDQojZGVmaW5lIElTQV9DTkZfT0ZGU0VUCQkw
eDYNCiNkZWZpbmUgVFhfQ1RMX09GRlNFVAkJKElTQV9DTkZfT0ZGU0VUICsg
OCkJLyogIDg5MDAgZWVwcm9tICovDQojZGVmaW5lIEFVVE9fTkVHX0NORl9P
RkZTRVQJKElTQV9DTkZfT0ZGU0VUICsgOCkJLyogIDg5MjAgZWVwcm9tICov
DQoNCi8qDQogKiAgdGhlIGFzc3VtcHRpb24gaGVyZSBpcyB0aGF0IHRoZSBi
aXRzIGluIHRoZSBlZXByb20gYXJlIGdlbmVyYWxseSANCiAqICBpbiB0aGUg
c2FtZSBwb3NpdGlvbiBhcyB0aG9zZSBpbiB0aGUgYXV0b25lZ2N0bCByZWdp
c3Rlci4gDQogKiAgT2YgY291cnNlIHRoZSBJTU0gYml0IGlzIG5vdCBpbiB0
aGF0IHJlZ2lzdGVyIHNvIGl0IG11c3QgYmUgDQogKiAgbWFza2VkIG91dA0K
ICovDQojZGVmaW5lIEVFX0ZPUkNFX0ZEWAkJMHg4MDAwDQojZGVmaW5lIEVF
X05MUF9FTkFCTEUJCTB4MDIwMA0KI2RlZmluZSBFRV9BVVRPX05FR19FTkFC
TEUJMHgwMTAwDQojZGVmaW5lIEVFX0FMTE9XX0ZEWAkJMHgwMDgwDQojZGVm
aW5lIEVFX0FVVE9fTkVHX0NORl9NQVNLCShFRV9GT1JDRV9GRFggfCBFRV9O
TFBfRU5BQkxFIHwgCVwNCgkJCQkgRUVfQVVUT19ORUdfRU5BQkxFIHwgRUVf
QUxMT1dfRkRYKQ0KDQojZGVmaW5lIElNTV9CSVQJCQkweDAwNDAJLyogIGln
bm9yZSBtaXNzaW5nIG1lZGlhCSAqLw0KDQojZGVmaW5lIEFEQVBURVJfQ05G
X09GRlNFVAkoQVVUT19ORUdfQ05GX09GRlNFVCArIDIpDQojZGVmaW5lIEFf
Q05GX01FRElBICAgICAgICAgICAgIDB4MDAwNw0KI2RlZmluZSBBX0NORl8x
MEJfVAkJMHgwMDAxDQojZGVmaW5lIEFfQ05GX0FVSQkJMHgwMDAyDQojZGVm
aW5lIEFfQ05GXzEwQl8yCQkweDAwMDQNCiNkZWZpbmUgQV9DTkZfTUVESUFf
VFlQRQkweDAwNjANCiNkZWZpbmUgQV9DTkZfTUVESUFfQVVUTwkweDAwMDAN
CiNkZWZpbmUgQV9DTkZfTUVESUFfMTBCX1QJMHgwMDIwDQojZGVmaW5lIEFf
Q05GX01FRElBX0FVSQkJMHgwMDQwDQojZGVmaW5lIEFfQ05GX01FRElBXzEw
Ql8yCTB4MDA2MA0KI2RlZmluZSBBX0NORl9EQ19EQ19QT0xBUklUWQkweDAw
ODANCiNkZWZpbmUgQV9DTkZfTk9fQVVUT19QT0xBUklUWQkweDIwMDANCiNk
ZWZpbmUgQV9DTkZfTE9XX1JYX1NRVUVMQ0gJMHg0MDAwDQojZGVmaW5lIEFf
Q05GX0VYVE5EXzEwQl8yCTB4ODAwMA0KDQojZGVmaW5lIFBBQ0tFVF9QQUdF
X09GRlNFVAkweDgNCg0KLyoNCiAqICBCaXQgZGVmaW5pdGlvbnMgZm9yIHRo
ZSBJU0EgY29uZmlndXJhdGlvbiB3b3JkIGZyb20gdGhlIEVFUFJPTQ0KICov
DQojZGVmaW5lIElOVF9OT19NQVNLCQkweDAwMEYNCiNkZWZpbmUgRE1BX05P
X01BU0sJCTB4MDA3MA0KI2RlZmluZSBJU0FfRE1BX1NJWkUJCTB4MDIwMA0K
I2RlZmluZSBJU0FfQVVUT19SeERNQQkJMHgwNDAwDQojZGVmaW5lIElTQV9S
eERNQQkJMHgwODAwDQojZGVmaW5lIERNQV9CVVJTVAkJMHgxMDAwDQojZGVm
aW5lIFNUUkVBTV9UUkFOU0ZFUgkJMHgyMDAwDQojZGVmaW5lIEFOWV9JU0Ff
RE1BCQkoSVNBX0FVVE9fUnhETUEgfCBJU0FfUnhETUEpDQoNCi8qICBETUEg
Y29udHJvbGxlciByZWdpc3RlcnMgKi8NCiNkZWZpbmUgRE1BX0JBU0UJCTB4
MDAgICAvKiBETUEgY29udHJvbGxlciBiYXNlICovDQojZGVmaW5lIERNQV9C
QVNFXzIJCTB4MEMwICAvKiBETUEgY29udHJvbGxlciBiYXNlICovDQoNCiNk
ZWZpbmUgRE1BX1NUQVQJCTB4MEQwICAvKiBETUEgY29udHJvbGxlciBzdGF0
dXMgcmVnaXN0ZXIgKi8NCiNkZWZpbmUgRE1BX01BU0sJCTB4MEQ0ICAvKiBE
TUEgY29udHJvbGxlciBtYXNrIHJlZ2lzdGVyICovDQojZGVmaW5lIERNQV9N
T0RFCQkweDBENiAgLyogRE1BIGNvbnRyb2xsZXIgbW9kZSByZWdpc3RlciAq
Lw0KI2RlZmluZSBETUFfUkVTRVRGRgkJMHgwRDggIC8qIERNQSBjb250cm9s
bGVyIGZpcnN0L2xhc3QgZmxpcCBmbG9wICovDQoNCi8qICBETUEgZGF0YSAq
Lw0KI2RlZmluZSBETUFfRElTQUJMRQkJMHgwNCAgIC8qICBEaXNhYmxlIGNo
YW5uZWwgbiAqLw0KI2RlZmluZSBETUFfRU5BQkxFCQkweDAwICAgLyogIEVu
YWJsZSBjaGFubmVsIG4gKi8NCi8qICBEZW1hbmQgdHJhbnNmZXJzLCBpbmNy
LiBhZGRyZXNzLCBhdXRvIGluaXQsIHdyaXRlcywgY2guIG4gKi8NCiNkZWZp
bmUgRE1BX1JYX01PREUJCTB4MTQNCi8qICBEZW1hbmQgdHJhbnNmZXJzLCBp
bmNyLiBhZGRyZXNzLCBhdXRvIGluaXQsIHJlYWRzLCBjaC4gbiAqLw0KI2Rl
ZmluZSBETUFfVFhfTU9ERQkJMHgxOA0KDQojZGVmaW5lIERNQV9TSVpFCQko
MTYqMTAyNCkJLyogU2l6ZSBvZiBkbWEgYnVmZmVyIC0gMTZrICovDQoNCiNk
ZWZpbmUgQ1M4OTAwCQkJMHgwMDAwDQojZGVmaW5lIENTODkyMAkJCTB4NDAw
MCAgIA0KI2RlZmluZSBDUzg5MjBNCQkJMHg2MDAwICAgDQojZGVmaW5lIFJF
VklTT05fQklUUwkJMHgxRjAwDQojZGVmaW5lIEVFVkVSX05VTUJFUgkJMHgx
Mg0KI2RlZmluZSBDSEtTVU1fTEVOCQkweDE0DQojZGVmaW5lIENIS1NVTV9W
QUwJCTB4MDAwMA0KI2RlZmluZSBTVEFSVF9FRVBST01fREFUQQkweDAwMWMg
LyogT2Zmc2V0IGludG8gZWVwcm9tIGZvciBzdGFydCBvZiBkYXRhICovDQoj
ZGVmaW5lIElSUV9NQVBfRUVQUk9NX0RBVEEJMHgwMDQ2IC8qIE9mZnNldCBp
bnRvIGVlcHJvbSBmb3IgdGhlIElSUSBtYXAgKi8NCiNkZWZpbmUgSVJRX01B
UF9MRU4JCTB4MDAwNCAvKiBObyBvZiBieXRlcyB0byByZWFkIGZvciB0aGUg
SVJRIG1hcCAqLw0KI2RlZmluZSBQTlBfSVJRX0ZSTVQJCTB4MDAyMiAvKiBQ
TlAgc21hbGwgaXRlbSBJUlEgZm9ybWF0ICovDQojZGVmaW5lIENTODkwMF9J
UlFfTUFQCQkweDFjMjAgLyogVGhpcyBJUlEgbWFwIGlzIGZpeGVkICovDQoN
CiNkZWZpbmUgQ1M4OTIwX05PX0lOVFMJCTB4MEYgICAvKiAgTWF4IENTODky
MCBpbnRlcnJ1cHQgc2VsZWN0ICMgKi8NCg0KI2RlZmluZSBQTlBfQUREX1BP
UlQJCTB4MDI3OQ0KI2RlZmluZSBQTlBfV1JJVEVfUE9SVAkJMHgwQTc5DQoN
CiNkZWZpbmUgR0VUX1BOUF9JU0FfU1RSVUNUCTB4NDANCiNkZWZpbmUgUE5Q
X0lTQV9TVFJVQ1RfTEVOCTB4MDYNCiNkZWZpbmUgUE5QX0NTTl9DTlRfT0ZG
CQkweDAxDQojZGVmaW5lIFBOUF9SRF9QT1JUX09GRgkJMHgwMg0KI2RlZmlu
ZSBQTlBfRlVOQ1RJT05fT0sJCTB4MDANCiNkZWZpbmUgUE5QX1dBS0UJCTB4
MDMNCiNkZWZpbmUgUE5QX1JTUkNfREFUQQkJMHgwNA0KI2RlZmluZSBQTlBf
UlNSQ19SRUFEWQkJMHgwMQ0KI2RlZmluZSBQTlBfU1RBVFVTCQkweDA1DQoj
ZGVmaW5lIFBOUF9BQ1RJVkFURQkJMHgzMA0KI2RlZmluZSBQTlBfQ05GX0lP
X0gJCTB4NjANCiNkZWZpbmUgUE5QX0NORl9JT19MCQkweDYxDQojZGVmaW5l
IFBOUF9DTkZfSU5UCQkweDcwDQojZGVmaW5lIFBOUF9DTkZfRE1BCQkweDc0
DQojZGVmaW5lIFBOUF9DTkZfTUVNCQkweDQ4DQoNCiNkZWZpbmUgQklUMAkJ
CTENCiNkZWZpbmUgQklUMTUJCQkweDgwMDANCg0KI2RlZmluZQlDU19EVVBM
RVhfQVVUTwkJMA0KI2RlZmluZSBDU19EVVBMRVhfRlVMTAkJMQ0KI2RlZmlu
ZSBDU19EVVBMRVhfSEFMRgkJMg0KDQovKiBEZXZpY2UgbmFtZSAqLw0KI2Rl
ZmluZSBDU19OQU1FCQkJImNzIg0KDQojZGVmaW5lIGNzX3JlYWRyZWcoaW9i
YXNlLCBwb3J0bm8pIFwNCgkob3V0dygoaW9iYXNlKSArIEFERF9QT1JULCAo
cG9ydG5vKSksIFwNCglpbncoKGlvYmFzZSkgKyBEQVRBX1BPUlQpKQ0KI2Rl
ZmluZSBjc193cml0ZXJlZyhpb2Jhc2UsIHBvcnRubywgdmFsdWUpIFwNCgko
b3V0dygoaW9iYXNlKSArIEFERF9QT1JULCAocG9ydG5vKSksIFwNCglvdXR3
KChpb2Jhc2UpICsgREFUQV9QT1JULCAodmFsdWUpKSkNCiNkZWZpbmUgY3Nf
cmVhZHdvcmQoaW9iYXNlLCBwb3J0bm8pIFwNCgkoaW53KChpb2Jhc2UpICsg
KHBvcnRubykpKQ0KI2RlZmluZSBjc193cml0ZXdvcmQoaW9iYXNlLCBwb3J0
bm8sIHZhbHVlKSBcDQoJKG91dHcoKGlvYmFzZSkgKyAocG9ydG5vKSwgKHZh
bHVlKSkpDQoNCiNkZWZpbmUgcmVzZXRfY2hpcChuaWNfYWRkcikgXA0KCWNz
X3dyaXRlcmVnKG5pY19hZGRyLCBQUF9TZWxmQ1RMLCBjc19yZWFkcmVnKGlv
YWRkciwgUFBfU2VsZkNUTCkgfCBQT1dFUl9PTl9SRVNFVCksIFwNCglERUxB
WSgzMDAwMCkNCg0KI2RlZmluZSBjc19kdXBsZXhfZnVsbChzYykgXA0KICAg
ICAgICAoY3Nfd3JpdGVyZWcoc2MtPm5pY19hZGRyLCBQUF9BdXRvTmVnQ1RM
LCBGT1JDRV9GRFgpKQ0KDQojZGVmaW5lIGNzX2R1cGxleF9oYWxmKHNjKSBc
DQogICAgICAgIChjc193cml0ZXJlZyhzYy0+bmljX2FkZHIsIFBQX0F1dG9O
ZWdDVEwsIE5MUF9FTkFCTEUpKQ0KDQo=
--0-1615265065-900865544=:25782--

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.3.96.980719201938.25782A-300000>