[parisc-linux-cvs] PS/2 mouse driver patch

Helge Deller deller@gmx.de
Sat, 23 Jun 2001 01:21:54 +0200


--------------Boundary-00=_I8UCV3Y8BS6U3H3CIGPH
Content-Type: text/plain;
  charset="iso-8859-1"
Content-Transfer-Encoding: 8bit
Subject: 

- EXTRAVERSION -pa37
- applied PS/2 mouse driver patch,
contributed by the nice guys from the esiee-Team http://mkhppa1.esiee.fr/en/
Thanks!
- activated PS/2 mouse in defconfig and in debian-config (32bit only)

--------------Boundary-00=_I8UCV3Y8BS6U3H3CIGPH
Content-Type: text/plain;
  charset="iso-8859-1";
  name="LOG"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="LOG"

SW5kZXg6IE1ha2VmaWxlCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9ob21lL2N2cy9wYXJpc2MvbGlu
dXgvTWFrZWZpbGUsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNjgKZGlmZiAtdSAtcjEuNjggTWFr
ZWZpbGUKLS0tIE1ha2VmaWxlCTIwMDEvMDYvMjIgMTc6MTQ6MTYJMS42OAorKysgTWFrZWZpbGUJ
MjAwMS8wNi8yMiAyMzowNzoxNQpAQCAtMSw3ICsxLDcgQEAKIFZFUlNJT04gPSAyCiBQQVRDSExF
VkVMID0gNAogU1VCTEVWRUwgPSAwCi1FWFRSQVZFUlNJT04gPSAtcGEzNgorRVhUUkFWRVJTSU9O
ID0gLXBhMzcKIAogS0VSTkVMUkVMRUFTRT0kKFZFUlNJT04pLiQoUEFUQ0hMRVZFTCkuJChTVUJM
RVZFTCkkKEVYVFJBVkVSU0lPTikKIApJbmRleDogYXJjaC9wYXJpc2MvZGVmY29uZmlnCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KUkNTIGZpbGU6IC9ob21lL2N2cy9wYXJpc2MvbGludXgvYXJjaC9wYXJpc2MvZGVmY29u
ZmlnLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjM2CmRpZmYgLXUgLXIxLjM2IGRlZmNvbmZpZwot
LS0gZGVmY29uZmlnCTIwMDEvMDYvMjAgMjA6MjQ6MzEJMS4zNgorKysgZGVmY29uZmlnCTIwMDEv
MDYvMjIgMjM6MDc6MTYKQEAgLTM0Miw3ICszNDIsOCBAQAogIyBNaWNlCiAjCiAjIENPTkZJR19C
VVNNT1VTRSBpcyBub3Qgc2V0Ci0jIENPTkZJR19NT1VTRSBpcyBub3Qgc2V0CitDT05GSUdfTU9V
U0U9eQorQ09ORklHX1BTTU9VU0U9eQogCiAjCiAjIEpveXN0aWNrcwpJbmRleDogYXJjaC9wYXJp
c2MvZGViaWFuLWNvbmZpZ3MvMzIKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2hvbWUvY3ZzL3Bhcmlz
Yy9saW51eC9hcmNoL3BhcmlzYy9kZWJpYW4tY29uZmlncy8zMix2CnJldHJpZXZpbmcgcmV2aXNp
b24gMS4yCmRpZmYgLXUgLXIxLjIgMzIKLS0tIDMyCTIwMDEvMDYvMjEgMjM6MTQ6NDIJMS4yCisr
KyAzMgkyMDAxLzA2LzIyIDIzOjA3OjE2CkBAIC02Miw3ICs2Miw3IEBACiAjIFBhcmFsbGVsIHBv
cnQgc3VwcG9ydAogIwogQ09ORklHX1BBUlBPUlQ9eQotIyBDT05GSUdfUEFSUE9SVF9QQyBpcyBu
b3Qgc2V0CitDT05GSUdfUEFSUE9SVF9QQz15CiAjIENPTkZJR19QQVJQT1JUX0FNSUdBIGlzIG5v
dCBzZXQKICMgQ09ORklHX1BBUlBPUlRfTUZDMyBpcyBub3Qgc2V0CiAjIENPTkZJR19QQVJQT1JU
X0FUQVJJIGlzIG5vdCBzZXQKQEAgLTQxOSw3ICs0MTksOCBAQAogIyBNaWNlCiAjCiAjIENPTkZJ
R19CVVNNT1VTRSBpcyBub3Qgc2V0Ci0jIENPTkZJR19NT1VTRSBpcyBub3Qgc2V0CitDT05GSUdf
TU9VU0U9eQorQ09ORklHX1BTTU9VU0U9eQogCiAjCiAjIEpveXN0aWNrcwpJbmRleDogZHJpdmVy
cy9jaGFyL2hwX3BzYXV4LmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2hvbWUvY3ZzL3BhcmlzYy9s
aW51eC9kcml2ZXJzL2NoYXIvaHBfcHNhdXguYyx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS42CmRp
ZmYgLXUgLXIxLjYgaHBfcHNhdXguYwotLS0gaHBfcHNhdXguYwkyMDAxLzA0LzAzIDExOjU5OjUy
CTEuNgorKysgaHBfcHNhdXguYwkyMDAxLzA2LzIyIDIzOjA3OjIwCkBAIC05LDY4ICs5LDcwIEBA
CiAgKgkJCU1hcnRlYXUgVGhvbWFzIChtYXJ0ZWF1dEBlc2llZS5mcikKICAqIAkJCURqb3VkaSBN
YWxlayAoZGpvdWRpbUBlc2llZS5mcikKICAqCWZpeGVkIGxlZHMgY29udHJvbAorICoJaW1wbGVt
ZW50ZWQgdGhlIHBzYXV4IGFuZCBjb250cm9sbGVkIHRoZSBtb3VzZSBzY2FuY29kZSBiYXNlZCBv
biBwY19rZXliLmMKICAqLwogCisjaW5jbHVkZSA8bGludXgvY29uZmlnLmg+CisKICNpbmNsdWRl
IDxhc20vaGFyZHdhcmUuaD4KICNpbmNsdWRlIDxhc20va2V5Ym9hcmQuaD4KICNpbmNsdWRlIDxh
c20vZ3NjLmg+CiAKICNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgogI2luY2x1ZGUgPGxpbnV4L3B0
cmFjZS5oPgkvKiBpbnRlcnJ1cHQuaCB3YW50cyBzdHJ1Y3QgcHRfcmVncyBkZWZpbmVkICovCisj
aW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+CiAjaW5jbHVkZSA8bGludXgvc2NoZWQuaD4JLyog
Zm9yIHJlcXVlc3RfaXJxL2ZyZWVfaXJxICovCiAjaW5jbHVkZSA8bGludXgvaW9wb3J0Lmg+CiAj
aW5jbHVkZSA8bGludXgva2VybmVsLmg+Ci0jaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+CiAj
aW5jbHVkZSA8bGludXgvd2FpdC5oPgorI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+CiAjaW5jbHVk
ZSA8bGludXgvZXJybm8uaD4KICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CiAjaW5jbHVkZSA8bGlu
dXgvcGNfa2V5Yi5oPgogI2luY2x1ZGUgPGxpbnV4L2tiZF9rZXJuLmg+CiAKKy8qIG1vdXNlIGlu
Y2x1ZGVzICovCisjaW5jbHVkZSA8bGludXgvbWlzY2RldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4
L21hbGxvYy5oPgorI2luY2x1ZGUgPGxpbnV4L3JhbmRvbS5oPgorI2luY2x1ZGUgPGxpbnV4L3Nw
aW5sb2NrLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KKyNpbmNsdWRlIDxhc20vdWFj
Y2Vzcy5oPgorI2luY2x1ZGUgPGxpbnV4L3BvbGwuaD4KKworLyogSFAgc3BlY2lmaWMgTEFTSSBQ
Uy8yIGtleWJvYXJkIGFuZCBwc2F1eCBjb25zdGFudHMgKi8KKyNkZWZpbmUJQVVYX1JFUExZX0FD
SwkweEZBCS8qIENvbW1hbmQgYnl0ZSBBQ0suICovCisjZGVmaW5lCUFVWF9SRUNPTk5FQ1QJMHhB
QQkvKiBzY2FuY29kZSB3aGVuIHBzMiBkZXZpY2UgaXMgcGx1Z2dlZCAoYmFjaykgaW4gKi8KKwor
I2RlZmluZQlMQVNJX1BTQVVYX09GRlNFVCAweDAxMDAgLyogb2Zmc2V0IGZyb20ga2V5Ym9hcmQg
dG8gcHNhdXggcG9ydCAqLworCisjZGVmaW5lCUxBU0lfSUQJCTB4MDAJLyogSUQgYW5kIHJlc2V0
IHBvcnQgb2Zmc2V0cyAqLworI2RlZmluZQlMQVNJX1JFU0VUCTB4MDAKKyNkZWZpbmUJTEFTSV9S
Q1ZEQVRBCTB4MDQJLyogcmVjZWl2ZSBhbmQgdHJhbnNtaXQgcG9ydCBvZmZzZXRzICovCisjZGVm
aW5lCUxBU0lfWE1UREFUQQkweDA0CisjZGVmaW5lCUxBU0lfQ09OVFJPTAkweDA4CS8qIHNlZTog
Y29udHJvbCByZWdpc3RlciBiaXRzICovCisjZGVmaW5lCUxBU0lfU1RBVFVTCTB4MEMJLyogc2Vl
OiBzdGF0dXMgcmVnaXN0ZXIgYml0cyAqLworCisvKiBjb250cm9sIHJlZ2lzdGVyIGJpdHMgKi8K
KyNkZWZpbmUgTEFTSV9DVFJMX0VOQkwJMHgwMQkvKiBlbmFibGUgaW50ZXJmYWNlICovCisjZGVm
aW5lIExBU0lfQ1RSTF9MUEJYUgkweDAyCS8qIGxvb3BiYWNrIG9wZXJhdGlvbiAqLworI2RlZmlu
ZSBMQVNJX0NUUkxfRElBRwkweDIwCS8qIGRpcmVjdGx5IGNvbnRyb2wgY2xvY2svZGF0YSBsaW5l
ICovCisjZGVmaW5lIExBU0lfQ1RSTF9EQVRESVIgMHg0MAkvKiBkYXRhIGxpbmUgZGlyZWN0IGNv
bnRyb2wgKi8KKyNkZWZpbmUgTEFTSV9DVFJMX0NMS0RJUiAweDgwCS8qIGNsb2NrIGxpbmUgZGly
ZWN0IGNvbnRyb2wgKi8KKworLyogc3RhdHVzIHJlZ2lzdGVyIGJpdHMgKi8KKyNkZWZpbmUgTEFT
SV9TVEFUX1JCTkUJMHgwMQorI2RlZmluZSBMQVNJX1NUQVRfVEJORQkweDAyCisjZGVmaW5lIExB
U0lfU1RBVF9URVJSCTB4MDQKKyNkZWZpbmUgTEFTSV9TVEFUX1BFUlIJMHgwOAorI2RlZmluZSBM
QVNJX1NUQVRfQ01QSU5UUiAweDEwCisjZGVmaW5lIExBU0lfU1RBVF9EQVRTSEQgMHg0MAorI2Rl
ZmluZSBMQVNJX1NUQVRfQ0xLU0hEIDB4ODAKIAotc3RhdGljIHN0cnVjdCBocF9kZXZpY2UgKmxh
c2lfcHNhdXhfa2V5YjsKIHN0YXRpYyB2b2lkICpsYXNpa2JkX2hwYTsKK3N0YXRpYyB2b2lkICps
YXNpcHMyX2hwYTsKIAogCi0jZGVmaW5lIEtCRF9CQVQJCTB4YWEJCS8qIGluICovCi0jZGVmaW5l
IEtCRF9TRVRMRURTCTB4ZWQJCS8qIG91dCAqLwotI2RlZmluZSBLQkRfRUNITwkweGVlCQkvKiBp
bi9vdXQgKi8KLSNkZWZpbmUgS0JEX0JSRUFLCTB4ZjAJCS8qIGluICovCi0jZGVmaW5lIEtCRF9U
WVBSQVRFRExZCTB4ZjMJCS8qIG91dCAqLwotI2RlZmluZSBLQkRfU0NBTkVOQUJMRQkweGY0CQkv
KiBvdXQgKi8KLSNkZWZpbmUgS0JEX0RFRkRJU0FCTEUJMHhmNQkJLyogb3V0ICovCi0jZGVmaW5l
IEtCRF9ERUZBVUxUCTB4ZjYJCS8qIG91dCAqLwotI2RlZmluZSBLQkRfQUNLCQkweGZhCQkvKiBp
biAqLwotI2RlZmluZSBLQkRfRElBR0ZBSUwJMHhmZAkJLyogaW4gKi8KLSNkZWZpbmUgS0JEX1JF
U0VORAkweGZlCQkvKiBpbi9vdXQgKi8KLSNkZWZpbmUgS0JEX1JFU0VUCTB4ZmYJCS8qIG91dCAq
LwotCi0jZGVmaW5lCUxBU0lfSUQJCTB4MDAKLSNkZWZpbmUgTEFTSV9SRVNFVAkweDAwCi0jZGVm
aW5lIExBU0lfUkNWREFUQQkweDA0Ci0jZGVmaW5lIExBU0lfWE1UREFUQQkweDA0Ci0jZGVmaW5l
IExBU0lfQ09OVFJPTAkweDA4Ci0jZGVmaW5lIExBU0lfU1RBVFVTCTB4MGMKLQotLyogQ29udHJv
bCByZWdpc3RlciBiaXRzICovCi0KLSNkZWZpbmUgTEFTSV9DVFJMX0VOQkwJCTB4MDEJLyogZW5h
YmxlIGludGVyZmFjZSAqLwotI2RlZmluZSBMQVNJX0NUUkxfTFBCWFIJCTB4MDIJLyogbG9vcGJh
Y2sgb3BlcmF0aW9uICovCi0jZGVmaW5lIExBU0lfQ1RSTF9ESUFHCQkweDIwCS8qIGRpcmVjdGx5
IGNvbnRyb2wgY2xvY2svZGF0YSBsaW5lICovCi0jZGVmaW5lCUxBU0lfQ1RSTF9EQVRESVIJMHg0
MAkvKiBkYXRhIGxpbmUgZGlyZWN0IGNvbnRyb2wgKi8KLSNkZWZpbmUJTEFTSV9DVFJMX0NMS0RJ
UgkweDgwCS8qIGNsb2NrIGxpbmUgZGlyZWN0IGNvbnRyb2wgKi8KLQotLyogU3RhdHVzIHJlZ2lz
dGVyIGJpdHMgKi8KLQotI2RlZmluZSBMQVNJX1NUQVRfUkJORQkJMHgwMQotI2RlZmluZSBMQVNJ
X1NUQVRfVEJORQkJMHgwMgotI2RlZmluZSBMQVNJX1NUQVRfVEVSUgkJMHgwNAotI2RlZmluZSBM
QVNJX1NUQVRfUEVSUgkJMHgwOAotI2RlZmluZSBMQVNJX1NUQVRfQ01QSU5UUgkweDEwCi0jZGVm
aW5lIExBU0lfU1RBVF9EQVRTSEQJMHg0MAotI2RlZmluZSBMQVNJX1NUQVRfQ0xLU0hECTB4ODAK
LQotCiBzdGF0aWMgaW5saW5lIHU4IHJlYWRfaW5wdXQodm9pZCAqaHBhKQogewogCXJldHVybiBn
c2NfcmVhZGIoaHBhK0xBU0lfUkNWREFUQSk7CkBAIC05MSwzNSArOTMsMzggQEAKICAgICAgICAg
cmV0dXJuIGdzY19yZWFkYihocGErTEFTSV9TVEFUVVMpOwogfQogCi1zdGF0aWMgdm9pZCB3cml0
ZV9vdXRwdXQodTggdmFsLCB2b2lkICpocGEpCitzdGF0aWMgaW50IHdyaXRlX291dHB1dCh1OCB2
YWwsIHZvaWQgKmhwYSkKIHsKIAlpbnQgd2FpdCA9IDA7CiAKIAl3aGlsZSAocmVhZF9zdGF0dXMo
aHBhKSAmIExBU0lfU1RBVF9UQk5FKSB7CiAJCXdhaXQrKzsKIAkJaWYgKHdhaXQ+MTAwMDApIHsK
LQkJCXByaW50ayhLRVJOX1dBUk5JTkcgIkxhc2kgUFMvMiB0cmFuc21pdCBidWZmZXIgdGltZW91
dFxuIik7Ci0JCQlyZXR1cm47CisJCQkvKiBwcmludGsoS0VSTl9XQVJOSU5HICJMYXNpIFBTLzIg
dHJhbnNtaXQgYnVmZmVyIHRpbWVvdXRcbiIpOyAqLworCQkJcmV0dXJuIDA7CiAJCX0KIAl9CiAK
IAlpZiAod2FpdCkKLQkJcHJpbnRrKEtFUk5fSU5GTyAiTGFzaSBQUy8yIHdhaXQgJWRcbiIsIHdh
aXQpOworCQlwcmludGsoS0VSTl9ERUJVRyAiTGFzaSBQUy8yIHdhaXQgJWRcbiIsIHdhaXQpOwog
CQogCWdzY193cml0ZWIodmFsLCBocGErTEFTSV9YTVREQVRBKTsKIAotCXJldHVybjsKKwlyZXR1
cm4gMTsKIH0KIAorLyogVGhpcyBmdW5jdGlvbiBpcyB0aGUgUEEtUklTQyBhZGFwdGF0aW9uIG9m
IGkzODYgc291cmNlICovCiAKK3N0YXRpYyBpbmxpbmUgaW50IGF1eF93cml0ZV9hY2sodTggdmFs
KQoreworICAgICAgcmV0dXJuIHdyaXRlX291dHB1dCh2YWwsIGxhc2lrYmRfaHBhK0xBU0lfUFNB
VVhfT0ZGU0VUKTsKK30KKwogc3RhdGljIHZvaWQgbGFzaWtiZF9sZWRzKHVuc2lnbmVkIGNoYXIg
bGVkcykKIHsKLQl3cml0ZV9vdXRwdXQoS0JEX1NFVExFRFMsIGxhc2lrYmRfaHBhKTsKKwl3cml0
ZV9vdXRwdXQoS0JEX0NNRF9TRVRfTEVEUywgbGFzaWtiZF9ocGEpOwogCXdyaXRlX291dHB1dChs
ZWRzLCBsYXNpa2JkX2hwYSk7Ci0Jd3JpdGVfb3V0cHV0KEtCRF9TQ0FORU5BQkxFLCBsYXNpa2Jk
X2hwYSk7Ci0jaWYgMAotCXByaW50aygiJXMoJWQpXG4iLCBfX0ZVTkNUSU9OX18sIGxlZHMpOyAK
LSNlbmRpZgorCXdyaXRlX291dHB1dChLQkRfQ01EX0VOQUJMRSwgbGFzaWtiZF9ocGEpOwogfQog
CiAjaWYgMApAQCAtMTQ5LDkgKzE1NCwxMCBAQAogfQogI2VuZGlmIAogCi1pbnQgbGFzaV9wczJf
cmVzZXQodm9pZCAqaHBhKQorc3RhdGljIGludCBfX2luaXQgbGFzaV9wczJfcmVzZXQodm9pZCAq
aHBhLCBpbnQgaWQpCiB7CiAJdTggY29udHJvbDsKKwlpbnQgcmV0ID0gMTsKIAogCS8qIHJlc2V0
IHRoZSBpbnRlcmZhY2UgKi8KIAlnc2Nfd3JpdGViKDB4ZmYsIGhwYStMQVNJX1JFU0VUKTsKQEAg
LTE2MSw3ICsxNjcsMTQgQEAKIAljb250cm9sID0gcmVhZF9jb250cm9sKGhwYSk7CiAJd3JpdGVf
Y29udHJvbChjb250cm9sIHwgTEFTSV9DVFJMX0VOQkwsIGhwYSk7CiAKLQlyZXR1cm4gMDsKKyAg
ICAgICAgLyogaW5pdGlhbGl6ZXMgdGhlIGxlZHMgYXQgdGhlIGRlZmF1bHQgc3RhdGUgKi8KKyAg
ICAgICAgaWYgKGlkPT0wKSB7CisgICAgICAgICAgIHdyaXRlX291dHB1dChLQkRfQ01EX1NFVF9M
RURTLCBocGEpOworCSAgIHdyaXRlX291dHB1dCgwLCBocGEpOworCSAgIHJldCA9IHdyaXRlX291
dHB1dChLQkRfQ01EX0VOQUJMRSwgaHBhKTsKKwl9CisKKwlyZXR1cm4gcmV0OwogfQogCiBzdGF0
aWMgaW50IGluaXRlZDsKQEAgLTE3MSw1MyArMTg0LDI2NyBAQAogCSsraW5pdGVkOwogfQogCi1z
dGF0aWMgdTggaGFuZGxlX2xhc2lrYmRfZXZlbnQodm9pZCAqaHBhKQorCisvKiBHcmVhdGx5IGlu
c3BpcmVkIGJ5IHBjX2tleWIuYyAqLworCisvKgorICogV2FpdCBmb3Iga2V5Ym9hcmQgY29udHJv
bGxlciBpbnB1dCBidWZmZXIgdG8gZHJhaW4uCisgKgorICogRG9uJ3QgdXNlICdqaWZmaWVzJyBz
byB0aGF0IHdlIGRvbid0IGRlcGVuZCBvbgorICogaW50ZXJydXB0cy4uCisgKgorICogUXVvdGUg
ZnJvbSBQUy8yIFN5c3RlbSBSZWZlcmVuY2UgTWFudWFsOgorICoKKyAqICJBZGRyZXNzIGhleCAw
MDYwIGFuZCBhZGRyZXNzIGhleCAwMDY0IHNob3VsZCBiZSB3cml0dGVuIG9ubHkgd2hlbgorICog
dGhlIGlucHV0LWJ1ZmZlci1mdWxsIGJpdCBhbmQgb3V0cHV0LWJ1ZmZlci1mdWxsIGJpdCBpbiB0
aGUKKyAqIENvbnRyb2xsZXIgU3RhdHVzIHJlZ2lzdGVyIGFyZSBzZXQgMC4iCisgKi8KKyNpZmRl
ZiBDT05GSUdfUFNNT1VTRQorCitzdGF0aWMgc3RydWN0IGF1eF9xdWV1ZQkqcXVldWU7CitzdGF0
aWMgc3BpbmxvY2tfdAlrYmRfY29udHJvbGxlcl9sb2NrID0gU1BJTl9MT0NLX1VOTE9DS0VEOwor
c3RhdGljIHVuc2lnbmVkIGNoYXIJbW91c2VfcmVwbHlfZXhwZWN0ZWQ7CitzdGF0aWMgaW50IAkJ
YXV4X2NvdW50OworCitzdGF0aWMgaW50IGZhc3luY19hdXgoaW50IGZkLCBzdHJ1Y3QgZmlsZSAq
ZmlscCwgaW50IG9uKQogewotCXU4IHN0YXR1czsKLQlleHRlcm4gdm9pZCBoYW5kbGVfYXRfc2Nh
bmNvZGUoaW50KTsgLyogaW4gZHJpdmVycy9jaGFyL2tleWJfYXQuYyAqLworCWludCByZXR2YWw7
CisJCisJcmV0dmFsID0gZmFzeW5jX2hlbHBlcihmZCwgZmlscCwgb24sICZxdWV1ZS0+ZmFzeW5j
KTsKKwlpZiAocmV0dmFsIDwgMCkKKwkJcmV0dXJuIHJldHZhbDsKKwkKKwlyZXR1cm4gMDsKK30K
IAotCXdoaWxlICgoc3RhdHVzID0gcmVhZF9zdGF0dXMoaHBhKSkgJiBMQVNJX1NUQVRfUkJORSkg
ewotCQl1OCBzY2FuY29kZTsKIAotCQlzY2FuY29kZSA9IHJlYWRfaW5wdXQoaHBhKTsKIAotCQlp
ZiAoaW5pdGVkKQotCQkJaGFuZGxlX2F0X3NjYW5jb2RlKHNjYW5jb2RlKTsKK3N0YXRpYyBpbmxp
bmUgdm9pZCBoYW5kbGVfbW91c2Vfc2NhbmNvZGUodW5zaWduZWQgY2hhciBzY2FuY29kZSkKK3sK
KwlpZiAobW91c2VfcmVwbHlfZXhwZWN0ZWQpIHsKKwkJaWYgKHNjYW5jb2RlID09IEFVWF9SRVBM
WV9BQ0spIHsKKwkJCW1vdXNlX3JlcGx5X2V4cGVjdGVkLS07CisJCQlyZXR1cm47CisJCX0KKwkJ
bW91c2VfcmVwbHlfZXhwZWN0ZWQgPSAwOworCX0KKwllbHNlIGlmIChzY2FuY29kZSA9PSBBVVhf
UkVDT05ORUNUKSB7CisJCXF1ZXVlLT5oZWFkID0gcXVldWUtPnRhaWwgPSAwOyAgLyogRmx1c2gg
aW5wdXQgcXVldWUgKi8KKwkJcmV0dXJuOwogCX0KIAotCXRhc2tsZXRfc2NoZWR1bGUoJmtleWJv
YXJkX3Rhc2tsZXQpOworCWFkZF9tb3VzZV9yYW5kb21uZXNzKHNjYW5jb2RlKTsKKwlpZiAoYXV4
X2NvdW50KSB7CisJCWludCBoZWFkID0gcXVldWUtPmhlYWQ7CisJCQkJCisJCXF1ZXVlLT5idWZb
aGVhZF0gPSBzY2FuY29kZTsKKwkJaGVhZCA9IChoZWFkICsgMSkgJiAoQVVYX0JVRl9TSVpFLTEp
OworCQkKKwkJaWYgKGhlYWQgIT0gcXVldWUtPnRhaWwpIHsKKwkJCXF1ZXVlLT5oZWFkID0gaGVh
ZDsKKwkJCWtpbGxfZmFzeW5jKCZxdWV1ZS0+ZmFzeW5jLCBTSUdJTywgUE9MTF9JTik7CisJCQl3
YWtlX3VwX2ludGVycnVwdGlibGUoJnF1ZXVlLT5wcm9jX2xpc3QpOworCQl9CisJfQorfQogCi0J
cmV0dXJuIHN0YXR1czsKK3N0YXRpYyBpbmxpbmUgaW50IHF1ZXVlX2VtcHR5KHZvaWQpCit7CisJ
cmV0dXJuIHF1ZXVlLT5oZWFkID09IHF1ZXVlLT50YWlsOwogfQotCQotZXh0ZXJuIHN0cnVjdCBw
dF9yZWdzICprYmRfcHRfcmVnczsKIAotc3RhdGljIHZvaWQgbGFzaWtiZF9pbnRlcnJ1cHQoaW50
IGlycSwgdm9pZCAqZGV2LCBzdHJ1Y3QgcHRfcmVncyAqcmVncykKK3N0YXRpYyB1bnNpZ25lZCBj
aGFyIGdldF9mcm9tX3F1ZXVlKHZvaWQpCiB7Ci0JbGFzaWtiZF9ocGEgPSBkZXY7IC8qIHNhdmUg
ImhwYSIgZm9yIGxhc2lrYmRfbGVkcygpICovCisJdW5zaWduZWQgY2hhciByZXN1bHQ7CisJdW5z
aWduZWQgbG9uZyBmbGFnczsKIAotCWtiZF9wdF9yZWdzID0gcmVnczsKKwlzcGluX2xvY2tfaXJx
c2F2ZSgma2JkX2NvbnRyb2xsZXJfbG9jaywgZmxhZ3MpOworCXJlc3VsdCA9IHF1ZXVlLT5idWZb
cXVldWUtPnRhaWxdOworCXF1ZXVlLT50YWlsID0gKHF1ZXVlLT50YWlsICsgMSkgJiAoQVVYX0JV
Rl9TSVpFLTEpOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmtiZF9jb250cm9sbGVyX2xvY2ss
IGZsYWdzKTsKIAotCWhhbmRsZV9sYXNpa2JkX2V2ZW50KGxhc2lrYmRfaHBhKTsKKwlyZXR1cm4g
cmVzdWx0OwogfQogCisKKy8qCisgKiBXcml0ZSB0byB0aGUgYXV4IGRldmljZS4KKyAqLwogCi1p
bnQgbGFzaWtiZF9yZXF1ZXN0X2lycSh2b2lkICgqaGFuZGxlcikoaW50LCB2b2lkICosIHN0cnVj
dCBwdF9yZWdzKikpCitzdGF0aWMgc3NpemVfdCB3cml0ZV9hdXgoc3RydWN0IGZpbGUgKiBmaWxl
LCBjb25zdCBjaGFyICogYnVmZmVyLAorCQkJIHNpemVfdCBjb3VudCwgbG9mZl90ICpwcG9zKQog
ewotCXVuc2lnbmVkIGludCBpcnE7CisJc3NpemVfdCByZXR2YWwgPSAwOwogCi0JY2xpKCk7Ci0J
aXJxID0gYnVzZGV2aWNlX2FsbG9jX2lycShsYXNpX3BzYXV4X2tleWIpOwotCXN0aSgpOworCWlm
IChjb3VudCkgeworCQlzc2l6ZV90IHdyaXR0ZW4gPSAwOwogCi0JaWYgKCFpcnEpIHsKLQkJcHJp
bnRrKEtFUk5fV0FSTklORyAiSVJRIG5vdCBmb3VuZCBmb3IgTGFzaSBwc2F1eCBhdCAweCVwXG4i
LCBsYXNpX3BzYXV4X2tleWItPmhwYSk7Ci0JCXJldHVybiAtRU5PREVWOworCQlpZiAoY291bnQg
PiAzMikKKwkJCWNvdW50ID0gMzI7IC8qIExpbWl0IHRvIDMyIGJ5dGVzLiAqLworCQlkbyB7CisJ
CQljaGFyIGM7CisJCQlnZXRfdXNlcihjLCBidWZmZXIrKyk7CisJCQl3cml0dGVuKys7CisJCX0g
d2hpbGUgKC0tY291bnQpOworCQlyZXR2YWwgPSAtRUlPOworCQlpZiAod3JpdHRlbikgeworCQkJ
cmV0dmFsID0gd3JpdHRlbjsKKwkJCWZpbGUtPmZfZGVudHJ5LT5kX2lub2RlLT5pX210aW1lID0g
Q1VSUkVOVF9USU1FOworCQl9CiAJfQogCisJcmV0dXJuIHJldHZhbDsKK30KKworCisKK3N0YXRp
YyBzc2l6ZV90IHJlYWRfYXV4KHN0cnVjdCBmaWxlICogZmlsZSwgY2hhciAqIGJ1ZmZlciwKKwkJ
CXNpemVfdCBjb3VudCwgbG9mZl90ICpwcG9zKQoreworCURFQ0xBUkVfV0FJVFFVRVVFKHdhaXQs
IGN1cnJlbnQpOworCXNzaXplX3QgaSA9IGNvdW50OworCXVuc2lnbmVkIGNoYXIgYzsKKworCWlm
IChxdWV1ZV9lbXB0eSgpKSB7CisJCWlmIChmaWxlLT5mX2ZsYWdzICYgT19OT05CTE9DSykKKwkJ
CXJldHVybiAtRUFHQUlOOworCQlhZGRfd2FpdF9xdWV1ZSgmcXVldWUtPnByb2NfbGlzdCwgJndh
aXQpOworcmVwZWF0OgorCQlzZXRfY3VycmVudF9zdGF0ZShUQVNLX0lOVEVSUlVQVElCTEUpOwor
CQlpZiAocXVldWVfZW1wdHkoKSAmJiAhc2lnbmFsX3BlbmRpbmcoY3VycmVudCkpIHsKKwkJCXNj
aGVkdWxlKCk7CisJCQlnb3RvIHJlcGVhdDsKKwkJfQorCQljdXJyZW50LT5zdGF0ZSA9IFRBU0tf
UlVOTklORzsKKwkJcmVtb3ZlX3dhaXRfcXVldWUoJnF1ZXVlLT5wcm9jX2xpc3QsICZ3YWl0KTsK
Kwl9CisJd2hpbGUgKGkgPiAwICYmICFxdWV1ZV9lbXB0eSgpKSB7CisJCWMgPSBnZXRfZnJvbV9x
dWV1ZSgpOworCQlwdXRfdXNlcihjLCBidWZmZXIrKyk7CisJCWktLTsKKwl9CisJaWYgKGNvdW50
LWkpIHsKKwkJZmlsZS0+Zl9kZW50cnktPmRfaW5vZGUtPmlfYXRpbWUgPSBDVVJSRU5UX1RJTUU7
CisJCXJldHVybiBjb3VudC1pOworCX0KKwlpZiAoc2lnbmFsX3BlbmRpbmcoY3VycmVudCkpCisJ
CXJldHVybiAtRVJFU1RBUlRTWVM7CiAJcmV0dXJuIDA7CiB9CiAKKworc3RhdGljIGludCBvcGVu
X2F1eChzdHJ1Y3QgaW5vZGUgKiBpbm9kZSwgc3RydWN0IGZpbGUgKiBmaWxlKQoreworCWlmIChh
dXhfY291bnQrKykgCisJCXJldHVybiAwOworCisJcXVldWUtPmhlYWQgPSBxdWV1ZS0+dGFpbCA9
IDA7CS8qIEZsdXNoIGlucHV0IHF1ZXVlICovCisJYXV4X2NvdW50ID0gMTsKKwlhdXhfd3JpdGVf
YWNrKEFVWF9FTkFCTEVfREVWKTsJLyogRW5hYmxlIGF1eCBkZXZpY2UgKi8KKwkKKwlyZXR1cm4g
MDsKK30KKworCisvKiBObyBrZXJuZWwgbG9jayBoZWxkIC0gZmluZSAqLworc3RhdGljIHVuc2ln
bmVkIGludCBhdXhfcG9sbChzdHJ1Y3QgZmlsZSAqZmlsZSwgcG9sbF90YWJsZSAqIHdhaXQpCit7
CisKKwlwb2xsX3dhaXQoZmlsZSwgJnF1ZXVlLT5wcm9jX2xpc3QsIHdhaXQpOworCWlmICghcXVl
dWVfZW1wdHkoKSkKKwkJcmV0dXJuIFBPTExJTiB8IFBPTExSRE5PUk07CisJcmV0dXJuIDA7Cit9
CisKKworc3RhdGljIGludCByZWxlYXNlX2F1eChzdHJ1Y3QgaW5vZGUgKiBpbm9kZSwgc3RydWN0
IGZpbGUgKiBmaWxlKQoreworCWxvY2tfa2VybmVsKCk7CisJZmFzeW5jX2F1eCgtMSwgZmlsZSwg
MCk7CisJaWYgKC0tYXV4X2NvdW50KSB7CisJICAgdW5sb2NrX2tlcm5lbCgpOworCQlyZXR1cm4g
MDsKKwl9CisJdW5sb2NrX2tlcm5lbCgpOworCXJldHVybiAwOworfQorCitzdGF0aWMgc3RydWN0
IGZpbGVfb3BlcmF0aW9ucyBwc2F1eF9mb3BzID0geworCXJlYWQ6CQlyZWFkX2F1eCwKKwl3cml0
ZToJCXdyaXRlX2F1eCwKKwlwb2xsOgkJYXV4X3BvbGwsCisJb3BlbjoJCW9wZW5fYXV4LAorCXJl
bGVhc2U6CXJlbGVhc2VfYXV4LAorCWZhc3luYzoJCWZhc3luY19hdXgsCit9OworCitzdGF0aWMg
c3RydWN0IG1pc2NkZXZpY2UgcHNhdXhfbW91c2UgPSB7CisJbWlub3I6CQlQU01PVVNFX01JTk9S
LAorCW5hbWU6CQkicHNhdXgiLAorCWZvcHM6CQkmcHNhdXhfZm9wcywKK307CisKKyNlbmRpZiAv
KiBDT05GSUdfUFNNT1VTRSAqLworCisKKy8qIFRoaXMgZnVuY3Rpb24gaXMgbG9va2luZyBhdCB0
aGUgUFMyIGNvbnRyb2xsZXIgYW5kIGVtcHR5IHRoZSB0d28gYnVmZmVycyAqLworCitzdGF0aWMg
dTggaGFuZGxlX2xhc2lrYmRfZXZlbnQodm9pZCAqaHBhKQoreworICAgICAgICB1OCBzdGF0dXNf
a2V5YixzdGF0dXNfbW91c2Usc2NhbmNvZGUsaWQ7CisgICAgICAgIGV4dGVybiB2b2lkIGhhbmRs
ZV9hdF9zY2FuY29kZShpbnQpOyAvKiBpbiBkcml2ZXJzL2NoYXIva2V5Yl9hdC5jICovCisgICAg
ICAgIAorICAgICAgICAvKiBNYXNrIHRvIGdldCB0aGUgYmFzZSBhZGRyZXNzIG9mIHRoZSBQUy8y
IGNvbnRyb2xsZXIgKi8KKyAgICAgICAgaWQgPSBnc2NfcmVhZGIoaHBhK0xBU0lfSUQpICYgMHgw
ZjsKKyAgICAgICAgCisgICAgICAgIGlmIChpZD09MSkgCisgICAgICAgICAgIGhwYSAtPSBMQVNJ
X1BTQVVYX09GRlNFVDsgCisgICAgICAgIGxhc2lrYmRfaHBhID0gaHBhOworICAgICAgICAKKwor
ICAgICAgICBzdGF0dXNfa2V5YiA9IHJlYWRfc3RhdHVzKGhwYSk7CisgICAgICAgIHN0YXR1c19t
b3VzZSA9IHJlYWRfc3RhdHVzKGhwYStMQVNJX1BTQVVYX09GRlNFVCk7CisKKyAgICAgICAgd2hp
bGUgKChzdGF0dXNfa2V5YnxzdGF0dXNfbW91c2UpICYgTEFTSV9TVEFUX1JCTkUpeworICAgICAg
ICAgICAKKyAgICAgICAgICAgd2hpbGUgKHN0YXR1c19rZXliICYgTEFTSV9TVEFUX1JCTkUpIHsK
KwkgICAgICAKKyAgICAgICAgICAgICAgc2NhbmNvZGUgPSByZWFkX2lucHV0KGhwYSk7CisJICAg
ICAgCisJICAgICAgaWYgKGluaXRlZCkKKwkJIGhhbmRsZV9hdF9zY2FuY29kZShzY2FuY29kZSk7
IAorCSAgICAgIAorCSAgICAgIHN0YXR1c19rZXliID1yZWFkX3N0YXR1cyhocGEpOworICAgICAg
ICAgICB9CisJICAgCisjaWZkZWYgQ09ORklHX1BTTU9VU0UKKyAgICAgICAgICAgd2hpbGUgKHN0
YXR1c19tb3VzZSAmIExBU0lfU1RBVF9SQk5FKSB7CisJICAgICAgc2NhbmNvZGUgPSByZWFkX2lu
cHV0KGhwYStMQVNJX1BTQVVYX09GRlNFVCk7CisJICAgICAgaGFuZGxlX21vdXNlX3NjYW5jb2Rl
KHNjYW5jb2RlKTsKKyAgICAgICAgICAgICAgc3RhdHVzX21vdXNlID0gcmVhZF9zdGF0dXMoaHBh
K0xBU0lfUFNBVVhfT0ZGU0VUKTsKKwkgICB9CisgICAgICAgICAgIHN0YXR1c19tb3VzZSA9IHJl
YWRfc3RhdHVzKGhwYStMQVNJX1BTQVVYX09GRlNFVCk7CisjZW5kaWYgLyogQ09ORklHX1BTTU9V
U0UgKi8KKyAgICAgICAgICAgc3RhdHVzX2tleWIgPSByZWFkX3N0YXR1cyhocGEpOworICAgICAg
ICB9CisKKyAgICAgICAgdGFza2xldF9zY2hlZHVsZSgma2V5Ym9hcmRfdGFza2xldCk7CisgICAg
ICAgIHJldHVybiAoc3RhdHVzX2tleWJ8c3RhdHVzX21vdXNlKTsKK30KKworCisKKwkKK2V4dGVy
biBzdHJ1Y3QgcHRfcmVncyAqa2JkX3B0X3JlZ3M7CisKK3N0YXRpYyB2b2lkIGxhc2lrYmRfaW50
ZXJydXB0KGludCBpcnEsIHZvaWQgKmRldiwgc3RydWN0IHB0X3JlZ3MgKnJlZ3MpCit7CisJbGFz
aXBzMl9ocGEgPSBkZXY7IC8qIHNhdmUgImhwYSIgZm9yIGxhc2lrYmRfbGVkcygpICovCisJa2Jk
X3B0X3JlZ3MgPSByZWdzOworCWhhbmRsZV9sYXNpa2JkX2V2ZW50KGxhc2lwczJfaHBhKTsKK30K
KworCiBleHRlcm4gaW50IHBja2JkX3RyYW5zbGF0ZSh1bnNpZ25lZCBjaGFyLCB1bnNpZ25lZCBj
aGFyICosIGNoYXIpOwogCiBzdGF0aWMgc3RydWN0IGtiZF9vcHMgZ3NjX3BzMl9rYmRfb3BzID0g
ewpAQCAtMjM0LDU1ICs0NjEsODEgQEAKIGxhc2lfcHMyX3JlZ2lzdGVyKHN0cnVjdCBocF9kZXZp
Y2UgKmQsIHN0cnVjdCBwYV9pb2RjX2RyaXZlciAqZHJpKQogewogCXZvaWQgKmhwYSA9ICh2b2lk
ICopIGQtPmhwYTsKLQl1OCBpZDsKKwl1bnNpZ25lZCBpbnQgaXJxOwogCWNoYXIgKm5hbWU7CisJ
aW50IGRldmljZV9mb3VuZDsKKwl1OCBpZDsKIAogCWlkID0gZ3NjX3JlYWRiKGhwYStMQVNJX0lE
KSAmIDB4MGY7CiAKLQlzd2l0Y2goaWQpIHsKKwlzd2l0Y2ggKGlkKSB7CiAJY2FzZSAwOgogCQlu
YW1lID0gImtleWJvYXJkIjsKKwkJbGFzaWtiZF9ocGEgPSBocGE7CiAJCWJyZWFrOwogCWNhc2Ug
MToKLQkJbmFtZSA9ICJwc2F1eCI7IC8qICJtb3VzZSIgKi87CisJCW5hbWUgPSAicHNhdXgiOwog
CQlicmVhazsKIAlkZWZhdWx0OgotCQlwcmludGsoS0VSTl9XQVJOSU5HICJ1bmtub3duIFBTLzIg
cG9ydCAlZCBmb3VuZCEgIEdldCBmYW1vdXMgbm93IGJ5IHJlcG9ydGluZyB0aGlzIHRvIHBhcmlz
Yy1saW51eEBwYXJpc2MtbGludXgub3JnIVxuIiwgaWQpOwotCQluYW1lID0gInVua25vd24iOwor
CQlwcmludGsoS0VSTl9XQVJOSU5HICIlczogVW5rbm93biBQUy8yIHBvcnQgKGlkPSVkKSAtIGln
bm9yZWQuXG4iLAorCQkJX19GVU5DVElPTl9fLCBpZCApOworCQlyZXR1cm4gMDsKIAl9CisJCisJ
LyogcmVzZXQgdGhlIFBTLzIgcG9ydCAqLworCWRldmljZV9mb3VuZCA9IGxhc2lfcHMyX3Jlc2V0
KGhwYSxpZCk7CiAKLQlpZiAoaWQ9PTApIHsKLQkJcHJpbnRrKCJJbml0aWFsaXppbmcgTGFzaSBQ
Uy8yLSVzIHBvcnQgYXQgMHglcC4uLlxuIiwgbmFtZSwgaHBhKTsKLQl9IGVsc2UgewotCQlwcmlu
dGsoIlN1cHBvcnQgZm9yIExhc2kgUFMvMi0lcyBub3QgeWV0IGF2YWlsYWJsZSAhXG4iLCBuYW1l
KTsgLyogRklYTUUgKi8KLQl9Ci0JICAgIAotCWlmIChpZD09MCkgewotCQlpbnQgZXJyOwotCQl1
bnNpZ25lZCBpbnQgaXJxOwotCi0JCWlmICgoZXJyID0gbGFzaV9wczJfcmVzZXQoaHBhKSkpCi0J
CQlwcmludGsoIiVzOiBsYXNpX3BzMl9yZXNldCgpIGZhaWxlZCFcbiIsIF9fRlVOQ1RJT05fXyk7
Ci0KLQkJaXJxID0gYnVzZGV2aWNlX2FsbG9jX2lycShkKTsKLQkJaWYgKCFpcnEpCi0JCSAgICBy
ZXR1cm4gLUVOT0RFVjsKKwkvKiBhbGxvY2F0ZSB0aGUgaXJxIGFuZCBtZW1vcnkgcmVnaW9uIGZv
ciB0aGF0IGRldmljZSAqLworCWlmICghKGlycSA9IGJ1c2RldmljZV9hbGxvY19pcnEoZCkpKQor
CQlyZXR1cm4gLUVOT0RFVjsKIAkJICAgIAotCQlyZXF1ZXN0X2lycShpcnEsIGxhc2lrYmRfaW50
ZXJydXB0LCAwLCBuYW1lLCBocGEpOworCWlmIChyZXF1ZXN0X2lycShpcnEsIGxhc2lrYmRfaW50
ZXJydXB0LCAwLCBuYW1lLCBocGEpKQorCQlyZXR1cm4gLUVOT0RFVjsKKwkKKwlpZiAoIXJlcXVl
c3RfbWVtX3JlZ2lvbigodW5zaWduZWQgbG9uZylocGEsIExBU0lfU1RBVFVTICsgNCwgbmFtZSkp
CisJCXJldHVybiAtRU5PREVWOwogCi0JCXJlcXVlc3RfbWVtX3JlZ2lvbigodW5zaWduZWQgbG9u
ZylocGEsIExBU0lfU1RBVFVTICsgNCwgbmFtZSk7Ci0JCQorCXN3aXRjaCAoaWQpIHsKKwljYXNl
IDA6CQogCQlyZWdpc3Rlcl9rYmRfb3BzKCZnc2NfcHMyX2tiZF9vcHMpOwotCX0KKwkJYnJlYWs7
CisJY2FzZSAxOgorI2lmZGVmIENPTkZJR19QU01PVVNFCisJCXF1ZXVlID0gKHN0cnVjdCBhdXhf
cXVldWUgKikga21hbGxvYyhzaXplb2YoKnF1ZXVlKSwgR0ZQX0tFUk5FTCk7CisJCWlmICghcXVl
dWUpCisJCQlyZXR1cm4gLUVOT01FTTsKKworCQltZW1zZXQocXVldWUsIDAsIHNpemVvZigqcXVl
dWUpKTsKKwkJcXVldWUtPmhlYWQgPSBxdWV1ZS0+dGFpbCA9IDA7CisJCWluaXRfd2FpdHF1ZXVl
X2hlYWQoJnF1ZXVlLT5wcm9jX2xpc3QpOworCQkKKwkJbWlzY19yZWdpc3RlcigmcHNhdXhfbW91
c2UpOwogCisJCWF1eF93cml0ZV9hY2soQVVYX0VOQUJMRV9ERVYpOworCQkvKiB0cnkgaXQgYSBz
ZWNvbmQgdGltZSwgdGhpcyB3aWxsIGdpdmUgc3RhdHVzIGlmIHRoZSBkZXZpY2UgaXMKKwkJICog
YXZhaWxhYmxlICovCisJCWRldmljZV9mb3VuZCA9IGF1eF93cml0ZV9hY2soQVVYX0VOQUJMRV9E
RVYpOworCQlicmVhazsKKyNlbHNlCisJCS8qIHJldHVybiB3aXRob3V0IHByaW50aW5nIGFueSB1
bm5lY2Vzc2FyeSBhbmQgbWlzbGVhZGluZyBpbmZvICovCisJCXJldHVybiAwOwkKKyNlbmRpZgor
CX0gLyogb2YgY2FzZSAqLworCQorCXByaW50ayhLRVJOX0lORk8gIlBTLzIgJXMgY29udHJvbGxl
ciBhdCAweCUwOGx4IChpcnEgJWQpIGZvdW5kLCAiCisJCQkgIiVzZGV2aWNlIGF0dGFjaGVkLlxu
IiwKKwkJCW5hbWUsICh1bnNpZ25lZCBsb25nKWhwYSwgaXJxLAorCQkJZGV2aWNlX2ZvdW5kID8g
IiI6Im5vICIpOworCiAJcmV0dXJuIDA7CiB9CiAKKwogc3RhdGljIHN0cnVjdCBwYV9pb2RjX2Ry
aXZlciBsYXNpX3BzYXV4X2RyaXZlcnNfZm9yW10gX19pbml0ZGF0YSA9IHsKLSAge0hQSFdfRklP
LCAweDAsIDAsMHgwMDA4NCwgMCwgMCwKLQlEUklWRVJfQ0hFQ0tfSFdUWVBFICsgRFJJVkVSX0NI
RUNLX1NWRVJTSU9OLAotCSJMYXNpIHBzYXV4IiwgImdlbmVyaWMiLCAodm9pZCAqKSBsYXNpX3Bz
Ml9yZWdpc3Rlcn0sCi0gIHsgMCwgfQorCXtIUEhXX0ZJTywgMHgwLCAwLDB4MDAwODQsIDAsIDAs
CisJCURSSVZFUl9DSEVDS19IV1RZUEUgKyBEUklWRVJfQ0hFQ0tfU1ZFUlNJT04sCisJCSJMYXNp
IHBzYXV4IiwgImdlbmVyaWMiLCAodm9pZCAqKSBsYXNpX3BzMl9yZWdpc3Rlcn0sCisJeyAwLCB9
CiB9OwogCiBpbnQgX19pbml0IGdzY19wczJfaW5pdCAodm9pZCkgCkluZGV4OiBkcml2ZXJzL2dz
Yy9sYXNpLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2hvbWUvY3ZzL3BhcmlzYy9saW51eC9kcml2
ZXJzL2dzYy9sYXNpLmMsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMjIKZGlmZiAtdSAtcjEuMjIg
bGFzaS5jCi0tLSBsYXNpLmMJMjAwMC8xMi8yMCAyMTo0MDoxMwkxLjIyCisrKyBsYXNpLmMJMjAw
MS8wNi8yMiAyMzowNzoyMApAQCAtNDgsNyArNDgsOCBAQAogCWNhc2UgMHg1MDAwOglpcnEgPSAy
NjsgYnJlYWs7IC8qIFJTMjMyICovCiAJY2FzZSAweDYwMDA6CWlycSA9IDIyOyBicmVhazsgLyog
U0NTSSAqLwogCWNhc2UgMHg3MDAwOglpcnEgPSAyMzsgYnJlYWs7IC8qIExBTiAqLwotCWNhc2Ug
MHg4MDAwOglpcnEgPSAgNTsgYnJlYWs7IC8qIFBTLzIgS2V5Ym9hcmQgYW5kIE1vdXNlICovCisJ
Y2FzZSAweDgwMDA6ICAgIGlycSA9ICA1OyBicmVhazsgLyogUFMvMiBLZXlib2FyZCAqLworCWNh
c2UgMHg4MTAwOiAgICBpcnEgPSAgNTsgYnJlYWs7IC8qIFBTLzIgTW91c2UgKi8KIAljYXNlIDB4
QTAwMDoJaXJxID0gMTE7IGJyZWFrOyAvKiBGbG9wcHkgRGlzayBDb250cm9sbGVyICovCiAJZGVm
YXVsdDogCWlycSA9IC0xOyBicmVhazsgLyogdW5rbm93biAqLwogCX0K

--------------Boundary-00=_I8UCV3Y8BS6U3H3CIGPH--