HD44780 PiFace Control and Display patch

Thomas Preston <[email protected]> Fri, 29 Nov 2013 12:39:49 +0000
Newsgroups gmane.comp.sysutils.lcdproc
Message-ID <CAEQnaUqwZPAaFVGJaP5kF=7dfAQBxXY0iUV0MJ2doN9KyzwUDw@mail.gmail.com>
--047d7b2e4c027973d404ec5021d0
Content-Type: text/plain; charset=UTF-8

I've created a driver for PiFace Control and Display.

http://www.piface.org.uk/products/piface_control_and_display/

Can this be merged? I've attached the patch.

--047d7b2e4c027973d404ec5021d0
Content-Type: text/x-patch; charset=US-ASCII; name="hd44780-pifacecad.patch"
Content-Disposition: attachment; filename="hd44780-pifacecad.patch"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_holf4ef20

ZGlmZiAtdXJOIC1YIC9ob21lL3RvbS9Eb3dubG9hZHMvbGNkcHJvYy9sY2Rwcm9jL2RpZmZfaWdu
b3JlIC9ob21lL3RvbS9Eb3dubG9hZHMvbGNkcHJvYy9sY2Rwcm9jL2FjaW5jbHVkZS5tNCBsY2Rw
cm9jL2xjZHByb2MvYWNpbmNsdWRlLm00Ci0tLSAvaG9tZS90b20vRG93bmxvYWRzL2xjZHByb2Mv
bGNkcHJvYy9hY2luY2x1ZGUubTQJMjAxMy0wNS0wOCAyMDoxOTo1Ni4wMDAwMDAwMDAgKzAxMDAK
KysrIGxjZHByb2MvbGNkcHJvYy9hY2luY2x1ZGUubTQJMjAxMy0xMS0yOCAxMDozNjozNS4zMTU4
NDY5ODEgKzAwMDAKQEAgLTI0MSw2ICsyNDEsMTIgQEAKIAkJCQlBQ19ERUZJTkUoW1dJVEhfUkFT
UEJFUlJZUEldLFsxXSxbRGVmaW5lIGlmIHlvdSBhcmUgdXNpbmcgYSBSYXNwYmVycnkgUGkuXSkK
IAkJCQk7OwogCQkJZXNhYworZG5sCQkJV2hpbGUgUGlGYWNlIENvbnRyb2wgYW5kIERpc3BsYXkg
aXMgb25seSBpbnRlbmRlZCBmb3IgdGhlCitkbmwJCQlSYXNwYmVycnkgUGksIHRoZSBoZDQ0NzAt
cGlmYWNlY2FkIGRyaXZlciB3b3JrcyB0aHJvdWdoIFNQSS4KK2RubAkJCVRoZXJlZm9yZSBhbnkg
U1BJIGNvbm5lY3Rpb24gd2lsbCBkby4KKwkJCWlmIHRlc3QgIiR4X2FjX2hhdmVfc3BpIiA9IHll
czsgdGhlbgorCQkJCUhENDQ3ODBfRFJJVkVSUz0iJEhENDQ3ODBfRFJJVkVSUyBoZDQ0NzgwLWhk
NDQ3ODAtcGlmYWNlY2FkLm8iCisJCQlmaQogCQkJRFJJVkVSUz0iJERSSVZFUlMgaGQ0NDc4MCR7
U099IgogCQkJYWN0ZHJpdmVycz1bIiRhY3Rkcml2ZXJzIGhkNDQ3ODAiXQogCQkJOzsKZGlmZiAt
dXJOIC1YIC9ob21lL3RvbS9Eb3dubG9hZHMvbGNkcHJvYy9sY2Rwcm9jL2RpZmZfaWdub3JlIC9o
b21lL3RvbS9Eb3dubG9hZHMvbGNkcHJvYy9sY2Rwcm9jL2NvbmZpZ3VyZS5hYyBsY2Rwcm9jL2xj
ZHByb2MvY29uZmlndXJlLmFjCi0tLSAvaG9tZS90b20vRG93bmxvYWRzL2xjZHByb2MvbGNkcHJv
Yy9jb25maWd1cmUuYWMJMjAxMy0wNS0wNCAxNTozMToxNC4wMDAwMDAwMDAgKzAxMDAKKysrIGxj
ZHByb2MvbGNkcHJvYy9jb25maWd1cmUuYWMJMjAxMy0xMS0yOCAxNDoyOTo1Ni4yMzU0ODU4MzIg
KzAwMDAKQEAgLTE2Nyw2ICsxNjcsMTIgQEAKIAlBQ19ERUZJTkUoSEFWRV9JMkMsWzFdLFtEZWZp
bmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgaTJjIGhlYWRlcnNdKQogZmkKIAoreF9hY19oYXZlX3Nw
aT1ubworQUNfQ0hFQ0tfSEVBREVSUyhbbGludXgvc3BpL3NwaWRldi5oXSwgW3hfYWNfaGF2ZV9z
cGk9eWVzXSkKK2lmIHRlc3QgIiR4X2FjX2hhdmVfc3BpIiA9IHllczsgdGhlbgorCUFDX0RFRklO
RShIQVZFX1NQSSxbMV0sW0RlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBzcGkgaGVhZGVyc10p
CitmaQorCiBkbmwgQ2hlY2tzIGZvciBoZWFkZXIgZmlsZXMuCiBBQ19IRUFERVJfRElSRU5UCiBB
Q19IRUFERVJfU1REQwpkaWZmIC11ck4gLVggL2hvbWUvdG9tL0Rvd25sb2Fkcy9sY2Rwcm9jL2xj
ZHByb2MvZGlmZl9pZ25vcmUgL2hvbWUvdG9tL0Rvd25sb2Fkcy9sY2Rwcm9jL2xjZHByb2MvZG9j
cy9MQ0RkLjguaW4gbGNkcHJvYy9sY2Rwcm9jL2RvY3MvTENEZC44LmluCi0tLSAvaG9tZS90b20v
RG93bmxvYWRzL2xjZHByb2MvbGNkcHJvYy9kb2NzL0xDRGQuOC5pbgkyMDEyLTAyLTE4IDE1OjI0
OjQ1LjAwMDAwMDAwMCArMDAwMAorKysgbGNkcHJvYy9sY2Rwcm9jL2RvY3MvTENEZC44LmluCTIw
MTMtMTEtMjkgMTE6MTc6MDAuMTM1NjI1NDgxICswMDAwCkBAIC0yMTAsNiArMjEwLDkgQEAKIC5C
IGltb25sY2QKIGlNT04gSVIvTENEIG1vZHVsZXMgaW4gY2FzZXMgYnkgU291bmRncmFwaC9BaGFu
aXgvU2lsdmVyc3RvbmUvVW5lZWQvQWNjZW50L0FudGVjCiAuVFAKKy5CIHBpZmFjZWNhZAorUGlG
YWNlIENvbnRyb2wgYW5kIERpc3BsYXkgZm9yIHRoZSBSYXNwYmVycnkgUGkgKHdvcmtzIHdpdGgg
YW55IFNQSSBjb25uZWN0aW9uKQorLlRQCiAuQiBpcnRyYW5zCiBJUlRyYW5zIElSL1ZGRCBtb2R1
bGVzIGluIGNhc2VzIGJ5IEFoYW5peCAoZS5nLiBNQ0UzMDMpIGFuZCBwb3NzaWJseSBvdGhlcnMK
IE1heSByZXF1aXJlIGlyc2VydmVyIChodHRwOi8vd3d3LmlydHJhbnMuZGUvZW4vZG93bmxvYWQv
bGludXgucGhwKSB0byBiZSBydW5uaW5nIGZvciBjb25uZWN0aXZpdHkuCmRpZmYgLXVyTiAtWCAv
aG9tZS90b20vRG93bmxvYWRzL2xjZHByb2MvbGNkcHJvYy9kaWZmX2lnbm9yZSAvaG9tZS90b20v
RG93bmxvYWRzL2xjZHByb2MvbGNkcHJvYy9kb2NzL2xjZHByb2MtdXNlci9kcml2ZXJzL2hkNDQ3
ODAuZG9jYm9vayBsY2Rwcm9jL2xjZHByb2MvZG9jcy9sY2Rwcm9jLXVzZXIvZHJpdmVycy9oZDQ0
NzgwLmRvY2Jvb2sKLS0tIC9ob21lL3RvbS9Eb3dubG9hZHMvbGNkcHJvYy9sY2Rwcm9jL2RvY3Mv
bGNkcHJvYy11c2VyL2RyaXZlcnMvaGQ0NDc4MC5kb2Nib29rCTIwMTMtMDQtMDcgMTI6NTA6Mjku
MDAwMDAwMDAwICswMTAwCisrKyBsY2Rwcm9jL2xjZHByb2MvZG9jcy9sY2Rwcm9jLXVzZXIvZHJp
dmVycy9oZDQ0NzgwLmRvY2Jvb2sJMjAxMy0xMS0yOSAxMjoyODo0MC42Njg4MzM0NzkgKzAwMDAK
QEAgLTE2OCw2ICsxNjgsMTAgQEAKICAgICAgICAgPGVudHJ5PjxsaXRlcmFsPjxsaW5rIGxpbmtl
bmQ9ImhkNDQ3ODAtcmFzcGJlcnJ5cGkiPnJhc3BiZXJyeXBpPC9saW5rPjwvbGl0ZXJhbD48L2Vu
dHJ5PgogICAgICAgICA8ZW50cnk+TENEIGNvbm5lY3RlZCB0byB0aGUgR1BJTyBoZWFkZXIgb2Yg
YSBSYXNwYmVycnkgUGk8L2VudHJ5PgogICAgICAgPC9yb3c+CisgICAgICA8cm93PgorICAgICAg
ICA8ZW50cnk+PGxpdGVyYWw+PGxpbmsgbGlua2VuZD0iaGQ0NDc4MC1waWZhY2VjYWQiPnBpZmFj
ZWNhZDwvbGluaz48L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgICAgPGVudHJ5PlBpRmFjZSBDb250
cm9sIGFuZCBEaXNwbGF5IGZvciBSYXNwYmVycnkgUGk8L2VudHJ5PgorICAgICAgPC9yb3c+CiAg
ICAgPC90Ym9keT4KICAgPC90Z3JvdXA+CiAgIDwvdGFibGU+CkBAIC0zMDU4LDYgKzMwNjIsMzkg
QEAKIF1dPgogPC9zY3JlZW4+CiA8L2V4YW1wbGU+CisKKzwvc2VjdDM+CisKKzxzZWN0MyBpZD0i
aGQ0NDc4MC1waWZhY2VjYWQiPgorPHRpdGxlPlBpRmFjZSBDb250cm9sIGFuZCBEaXNwbGF5PC90
aXRsZT4KKworPHBhcmE+CitUaGUgUGlGYWNlIENvbnRyb2wgYW5kIERpc3BsYXkgZm9yIFJhc3Bi
ZXJyeSBQaQorKDx1bGluayB1cmw9Imh0dHA6Ly93d3cuYWRhZnJ1aXQuY29tL3Byb2R1Y3RzLzEx
MDkiPjwvdWxpbms+KSBjb21iaW5lcyBhCisxNngyIENoYXJhY3RlciBMQ0QgYW5kIG5hdmlnYXRp
b24gYnV0dG9ucyB1c2luZyB0aGUgU1BJIGJ1cyAoY2hpcF9zZWxlY3Q9MSkKK29uIHRoZSBSYXNw
ZXJyeSBQaS4KKzwvcGFyYT4KKworPGV4YW1wbGUgaWQ9ImhkNDQ3ODAtcGlmYWNlY2FkLWNvbmZp
Zy5leGFtcGxlIj4KKzx0aXRsZT5IRDQ0NzgwOiBDb25maWd1cmF0aW9uIGV4YW1wbGUgZm9yIFBp
RmFjZSBDb250cm9sIGFuZCBEaXNwbGF5IGNvbm5lY3Rpb24gdHlwZTwvdGl0bGU+Cis8c2NyZWVu
PgorPCFbQ0RBVEFbCitbaGQ0NDc4MF0KK0Nvbm5lY3Rpb25UeXBlPXBpZmFjZWNhZAorRGV2aWNl
PS9kZXYvc3BpZGV2MC4xCitQb3J0PQorU2l6ZT0xNngyCitCYWNrbGlnaHQ9eWVzCisKK0tleXBh
ZD15ZXMKK0tleURpcmVjdF8xPUxlZnQKK0tleURpcmVjdF8yPURvd24KK0tleURpcmVjdF8zPVVw
CitLZXlEaXJlY3RfND1SaWdodAorS2V5RGlyZWN0XzU9RW50ZXIKK11dPgorPC9zY3JlZW4+Cis8
L2V4YW1wbGU+CiAKIDwvc2VjdDM+CiAKZGlmZiAtdXJOIC1YIC9ob21lL3RvbS9Eb3dubG9hZHMv
bGNkcHJvYy9sY2Rwcm9jL2RpZmZfaWdub3JlIC9ob21lL3RvbS9Eb3dubG9hZHMvbGNkcHJvYy9s
Y2Rwcm9jL0xDRGQuY29uZiBsY2Rwcm9jL2xjZHByb2MvTENEZC5jb25mCi0tLSAvaG9tZS90b20v
RG93bmxvYWRzL2xjZHByb2MvbGNkcHJvYy9MQ0RkLmNvbmYJMjAxMy0wNS0wOCAyMDoxOTo1NS4w
MDAwMDAwMDAgKzAxMDAKKysrIGxjZHByb2MvbGNkcHJvYy9MQ0RkLmNvbmYJMjAxMy0xMS0yOSAx
MjoyNTo0My45MjUwMTIxMjQgKzAwMDAKQEAgLTUwLDcgKzUwLDcgQEAKICMgICBtZG0xNjZhLCBt
czY5MzEsIG10Y19zMTYyMDl4LCBNdHhPcmIsIG14NTAwMCwgTm9yaXRha2VWRkQsIHBpY29sY2Qs
CiAjICAgcHlyYW1pZCwgc2RlY2xjZCwgc2VkMTMzMCwgc2VkMTUyMCwgc2VyaWFsUE9TLCBzZXJp
YWxWRkQsIHNodXR0bGVWRkQsIHNsaSwKICMgICBzdHY1NzMwLCBzdmdhLCB0Njk2MywgdGV4dCwg
dHlhbiwgdWxhMjAwLCB2bHN5c19tNDI4LCB4b3NkCi1Ecml2ZXI9Y3Vyc2VzCitEcml2ZXI9aGQ0
NDc4MAogCiAjIFRlbGxzIHRoZSBkcml2ZXIgdG8gYmluZCB0byB0aGUgZ2l2ZW4gaW50ZXJmYWNl
LiBbZGVmYXVsdDogMTI3LjAuMC4xXQogQmluZD0xMjcuMC4wLjEKQEAgLTUzMiwxNCArNTMyLDE0
IEBACiBbaGQ0NDc4MF0KIAogIyBTZWxlY3Qgd2hhdCB0eXBlIG9mIGNvbm5lY3Rpb24uIFNlZSBk
b2N1bWVudGF0aW9uIGZvciBhdmFpbGFiZSB0eXBlcy4KLUNvbm5lY3Rpb25UeXBlPTRiaXQKK0Nv
bm5lY3Rpb25UeXBlPXBpZmFjZWNhZAogCiAjIEkvTyBhZGRyZXNzIG9mIHRoZSBMUFQgcG9ydC4g
VXN1YWwgdmFsdWVzIGFyZTogMHgyNzgsIDB4Mzc4IGFuZCAweDNCQy4KICMgRm9yIEkyQyBjb25u
ZWN0aW9ucyB0aGlzIHNldHMgdGhlIHNsYXZlIGFkZHJlc3MgKHVzdWFsbHkgMHgyMCkuCi1Qb3J0
PTB4Mzc4CitQb3J0PQogCiAjIERldmljZSBvZiB0aGUgc2VyaWFsIG9yIEkyQyBpbnRlcmZhY2Ug
W2RlZmF1bHQ6IC9kZXYvbGNkXQotRGV2aWNlPS9kZXYvdHR5UzAKK0RldmljZT0vZGV2L3NwaWRl
djAuMQogCiAjIEJpdHJhdGUgb2YgdGhlIHNlcmlhbCBwb3J0ICgwIGZvciBpbnRlcmZhY2UgZGVm
YXVsdCkKIFNwZWVkPTAKQEAgLTU2Miw3ICs1NjIsNyBAQAogI09mZkJyaWdodG5lc3M9MAogCiAj
IElmIHlvdSBoYXZlIGEgc3dpdGNoYWJsZSBiYWNrbGlnaHQuCi1CYWNrbGlnaHQ9bm8KK0JhY2ts
aWdodD15ZXMKIAogIyBJZiB5b3UgaGF2ZSB0aGUgYWRkaXRpb25hbCBvdXRwdXQgcG9ydCAoImJh
cmdyYXBoIikgYW5kIHlvdSB3YW50IHRvCiAjIGJlIGFibGUgdG8gY29udHJvbCBpdCB3aXRoIHRo
ZSBsY2Rwcm9jIE9VVFBVVCBjb21tYW5kCkBAIC01NzQsNyArNTc0LDcgQEAKIAogIyBTcGVjaWZp
ZXMgdGhlIHNpemUgb2YgdGhlIExDRC4KICMgSW4gY2FzZSBvZiBtdWx0aXBsZSBjb21iaW5lZCBk
aXNwbGF5cywgdGhpcyBzaG91bGQgYmUgdGhlIHRvdGFsIHNpemUuCi1TaXplPTIweDQKK1NpemU9
MTZ4MgogCiAjIEZvciBtdWx0aXBsZSBjb21iaW5lZCBkaXNwbGF5czogaG93IG1hbnkgbGluZXMg
ZG9lcyBlYWNoIGRpc3BsYXkgaGF2ZS4KICMgVnNwYW49MiwyIG1lYW5zIGJvdGggZGlzcGxheXMg
aGF2ZSAyIGxpbmVzLgpAQCAtNjI1LDExICs2MjUsMTEgQEAKICMgICBLZXlEaXJlY3RfND1FbnRl
cgogIyBGb3IgbWF0cml4IGtleXMgdXNlIHRoZSBYIGFuZCBZIGNvb3JkaW5hdGVzIG9mIHRoZSBr
ZXk6CiAjICAgS2V5TWF0cml4XzFfMz1FbnRlcgotS2V5TWF0cml4XzRfMT1FbnRlcgotS2V5TWF0
cml4XzRfMj1VcAotS2V5TWF0cml4XzRfMz1Eb3duCi1LZXlNYXRyaXhfNF80PUVzY2FwZQotCitL
ZXlEaXJlY3RfMT1MZWZ0CitLZXlEaXJlY3RfMj1Eb3duCitLZXlEaXJlY3RfMz1VcAorS2V5RGly
ZWN0XzQ9UmlnaHQKK0tleURpcmVjdF81PUVudGVyCiAKIAogIyMgSUNQIEExMDYgZHJpdmVyICMj
CmRpZmYgLXVyTiAtWCAvaG9tZS90b20vRG93bmxvYWRzL2xjZHByb2MvbGNkcHJvYy9kaWZmX2ln
bm9yZSAvaG9tZS90b20vRG93bmxvYWRzL2xjZHByb2MvbGNkcHJvYy9zZXJ2ZXIvZHJpdmVycy9o
ZDQ0NzgwLWRyaXZlcnMuaCBsY2Rwcm9jL2xjZHByb2Mvc2VydmVyL2RyaXZlcnMvaGQ0NDc4MC1k
cml2ZXJzLmgKLS0tIC9ob21lL3RvbS9Eb3dubG9hZHMvbGNkcHJvYy9sY2Rwcm9jL3NlcnZlci9k
cml2ZXJzL2hkNDQ3ODAtZHJpdmVycy5oCTIwMTMtMDQtMDcgMTI6NTA6MjkuMDAwMDAwMDAwICsw
MTAwCisrKyBsY2Rwcm9jL2xjZHByb2Mvc2VydmVyL2RyaXZlcnMvaGQ0NDc4MC1kcml2ZXJzLmgJ
MjAxMy0xMS0yOCAxNToxMDowOS4xMTM1NTA2MDkgKzAwMDAKQEAgLTQwLDYgKzQwLDkgQEAKICNp
ZmRlZiBXSVRIX1JBU1BCRVJSWVBJCiAjIGluY2x1ZGUgImhkNDQ3ODAtcnBpLmgiCiAjZW5kaWYK
KyNpZmRlZiBIQVZFX1NQSQorIyBpbmNsdWRlICJoZDQ0NzgwLXBpZmFjZWNhZC5oIgorI2VuZGlm
CiAvKiBhZGQgbmV3IGNvbm5lY3Rpb24gdHlwZSBoZWFkZXIgZmlsZXMgdG8gdGhlIGNvcnJlY3Qg
c2VjdGlvbiBhYm92ZSBvciBoZXJlICovCiAKIApAQCAtOTAsNiArOTMsOSBAQAogI2lmZGVmIFdJ
VEhfUkFTUEJFUlJZUEkKIAl7ICJyYXNwYmVycnlwaSIsICAgSEQ0NDc4MF9DVF9SQVNQQkVSUllQ
SSwgICBJRl9UWVBFX1BBUlBPUlQsICBoZF9pbml0X3JwaSAgICAgIH0sCiAjZW5kaWYKKyNpZmRl
ZiBIQVZFX1NQSQorCXsgInBpZmFjZWNhZCIsICAgSEQ0NDc4MF9DVF9QSUZBQ0VDQUQsICAgSUZf
VFlQRV9QSUZBQ0VDQUQsICBoZF9pbml0X3BpZmFjZWNhZCAgICAgIH0sCisjZW5kaWYKIAkvKiBh
ZGQgbmV3IGNvbm5lY3Rpb24gdHlwZXMgaW4gdGhlIGNvcnJlY3Qgc2VjdGlvbiBhYm92ZSBvciBo
ZXJlICovCiAKIAkvKiBkZWZhdWx0LCBlbmQgb2Ygc3RydWN0dXJlIGVsZW1lbnQgKGRvIG5vdCBk
ZWxldGUpICovCmRpZmYgLXVyTiAtWCAvaG9tZS90b20vRG93bmxvYWRzL2xjZHByb2MvbGNkcHJv
Yy9kaWZmX2lnbm9yZSAvaG9tZS90b20vRG93bmxvYWRzL2xjZHByb2MvbGNkcHJvYy9zZXJ2ZXIv
ZHJpdmVycy9oZDQ0NzgwLWxvdy5oIGxjZHByb2MvbGNkcHJvYy9zZXJ2ZXIvZHJpdmVycy9oZDQ0
NzgwLWxvdy5oCi0tLSAvaG9tZS90b20vRG93bmxvYWRzL2xjZHByb2MvbGNkcHJvYy9zZXJ2ZXIv
ZHJpdmVycy9oZDQ0NzgwLWxvdy5oCTIwMTMtMDQtMDcgMTI6NTA6MjkuMDAwMDAwMDAwICswMTAw
CisrKyBsY2Rwcm9jL2xjZHByb2Mvc2VydmVyL2RyaXZlcnMvaGQ0NDc4MC1sb3cuaAkyMDEzLTEx
LTI4IDE1OjE1OjA3Ljc0OTMwNzc1NiArMDAwMApAQCAtNTUsNiArNTUsNyBAQAogI2RlZmluZSBI
RDQ0NzgwX0NUX1VTQjRBTEwJCTIxCiAjZGVmaW5lIEhENDQ3ODBfQ1RfUkFTUEJFUlJZUEkJCTIy
CiAjZGVmaW5lIEhENDQ3ODBfQ1RfUElQTEFURQkJMjMKKyNkZWZpbmUgSEQ0NDc4MF9DVF9QSUZB
Q0VDQUQJCTI0CiAvKipAfSovCiAKIC8qKiBcbmFtZSBTeW1ib2xpYyBuYW1lcyBmb3IgaW50ZXJm
YWNlIHR5cGVzCkBAIC02NSw2ICs2Niw3IEBACiAjZGVmaW5lIElGX1RZUEVfVVNCCQkzCiAjZGVm
aW5lIElGX1RZUEVfSTJDCQk0CiAjZGVmaW5lIElGX1RZUEVfVENQCQk1CisjZGVmaW5lIElGX1RZ
UEVfUElGQUNFQ0FECQk2CiAvKipAfSovCiAKIC8qKiBcbmFtZSBTeW1ib2xpYyBkZWZhdWx0IHZh
bHVlcwpkaWZmIC11ck4gLVggL2hvbWUvdG9tL0Rvd25sb2Fkcy9sY2Rwcm9jL2xjZHByb2MvZGlm
Zl9pZ25vcmUgL2hvbWUvdG9tL0Rvd25sb2Fkcy9sY2Rwcm9jL2xjZHByb2Mvc2VydmVyL2RyaXZl
cnMvaGQ0NDc4MC1waWZhY2VjYWQuYyBsY2Rwcm9jL2xjZHByb2Mvc2VydmVyL2RyaXZlcnMvaGQ0
NDc4MC1waWZhY2VjYWQuYwotLS0gL2hvbWUvdG9tL0Rvd25sb2Fkcy9sY2Rwcm9jL2xjZHByb2Mv
c2VydmVyL2RyaXZlcnMvaGQ0NDc4MC1waWZhY2VjYWQuYwkxOTcwLTAxLTAxIDAxOjAwOjAwLjAw
MDAwMDAwMCArMDEwMAorKysgbGNkcHJvYy9sY2Rwcm9jL3NlcnZlci9kcml2ZXJzL2hkNDQ3ODAt
cGlmYWNlY2FkLmMJMjAxMy0xMS0yOSAxMjoyODozMi43OTI4NDAyMDMgKzAwMDAKQEAgLTAsMCAr
MSw0MjcgQEAKKy8qKiBcZmlsZSBzZXJ2ZXIvZHJpdmVycy9oZDQ0NzgwLXBpZmFjZWNhZC5jCisg
KiBcYyBQaUZhY2UgQ29udHJvbCBhbmQgRGlzcGxheSBjb25uZWN0aW9uIHR5cGUgKFNQSSkgb2Yg
XGMgaGQ0NDc4MCBkcml2ZXIgZm9yIEhpdGFjaGkgSEQ0NDc4MCBiYXNlZCBMQ0QgZGlzcGxheXMu
CisgKgorICogVGhlIExDRCBpcyBvcGVyYXRlZCBpbiBpdHMgNCBiaXQtbW9kZSB0byBiZSBjb25u
ZWN0ZWQgdG8gdGhlIDggYml0IFBvcnQgQgorICogb2YgYSBzaW5nbGUgTUNQMjNTMTcgdGhhdCBp
cyBhY2Nlc3NlZCBieSB0aGUgc2VydmVyIHZpYSB0aGUgU1BJIGJ1cy4KKyAqLworCisvKiBDb3B5
cmlnaHQgKGMpIDIwMTMgVGhvbWFzIFByZXN0b24gPHRob21hcy5wcmVzdG9uQG9wZW5seC5vcmcu
dWs+CisgKgorICogVGhlIGNvbm5lY3Rpb25zIGFyZSAoTUNQMjNTMTcpOgorICogUG9ydCBBIFBp
biAwICAgICBTd2l0Y2ggMAorICogUG9ydCBBIFBpbiAxICAgICBTd2l0Y2ggMQorICogUG9ydCBB
IFBpbiAyICAgICBTd2l0Y2ggMgorICogUG9ydCBBIFBpbiAzICAgICBTd2l0Y2ggMworICogUG9y
dCBBIFBpbiA0ICAgICBTd2l0Y2ggNAorICogUG9ydCBBIFBpbiA1ICAgICBTd2l0Y2ggNQorICog
UG9ydCBBIFBpbiA2ICAgICBTd2l0Y2ggNgorICogUG9ydCBBIFBpbiA2ICAgICBTd2l0Y2ggNwor
ICogUG9ydCBCIFBpbiAwICAgICBENAorICogUG9ydCBCIFBpbiAxICAgICBENQorICogUG9ydCBC
IFBpbiAyICAgICBENgorICogUG9ydCBCIFBpbiAzICAgICBENworICogUG9ydCBCIFBpbiA0ICAg
ICBFTgorICogUG9ydCBCIFBpbiA1ICAgICBSVworICogUG9ydCBCIFBpbiA2ICAgICBSUworICoK
KyAqIEJhY2tsaWdodAorICogUG9ydCBCIFBpbiA3ICAgQmFja2xpZ2h0IChvcHRpb25hbCwgYWN0
aXZlLWhpZ2gpCisgKgorICogQ29uZmlndXJhdGlvbjoKKyAqIGRldmljZT0vZGV2L3NwaWRldjAu
MSAgICMgdGhlIGRldmljZSBmaWxlIG9mIHRoZSBTUEkgYnVzCisgKiBwb3J0PTB4MTMgICAjIFBv
cnQgQiAoR1BJT0IpIG9uIHRoZSBNQ1AyM1MxNworICoKKyAqIEJhc2VkIG1vc3RseSBvbiB0aGUg
aGQ0NDc4MC1pMmMgbW9kdWxlLCBzZWUgdGhlcmUgZm9yIGEgY29tcGxldGUgaGlzdG9yeS4KKyAq
CisgKiBUaGlzIGZpbGUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlLiBSZWZlciB0byB0aGUKKyAqIENPUFlJTkcgZmlsZSBkaXN0cmlidXRlZCB3aXRoIHRo
aXMgcGFja2FnZS4KKyAqLworCisjaW5jbHVkZSAiaGQ0NDc4MC1waWZhY2VjYWQuaCIKKyNpbmNs
dWRlICJoZDQ0NzgwLWxvdy5oIgorCisjaW5jbHVkZSAicmVwb3J0LmgiCisjaWZkZWYgSEFWRV9D
T05GSUdfSAorIyBpbmNsdWRlICJjb25maWcuaCIKKyNlbmRpZgorI2luY2x1ZGUgPHN0ZGlvLmg+
CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8ZXJybm8uaD4KKyNpbmNsdWRlIDx1bmlz
dGQuaD4KKyNpbmNsdWRlIDxmY250bC5oPgorI2luY2x1ZGUgPHN5cy9pb2N0bC5oPgorCisjaW5j
bHVkZSA8c3RkaW50Lmg+IC8qIEZvciB1aW50OF90ICovCisjaW5jbHVkZSA8bGludXgvc3BpL3Nw
aWRldi5oPgorI2luY2x1ZGUgImhkNDQ3ODAuaCIKKworCisvLyBHZW5lcmFsbHksIGFueSBmdW5j
dGlvbiB0aGF0IGFjY2Vzc2VzIHRoZSBMQ0QgY29udHJvbCBsaW5lcyBuZWVkcyB0byBiZQorLy8g
aW1wbGVtZW50ZWQgc2VwYXJhdGVseSBmb3IgZWFjaCBIVyBkZXNpZ24uIFRoaXMgaXMgdHlwaWNh
bGx5IChidXQgbm90CisvLyByZXN0cmljdGVkIHRvKToKKy8vIEhENDQ3ODBfc2VuZGRhdGEKKy8v
IEhENDQ3ODBfcmVhZGtleXBhZAorCit2b2lkIHBpZmFjZWNhZF9IRDQ0NzgwX3NlbmRkYXRhKFBy
aXZhdGVEYXRhICogcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQg
Y2hhciBkaXNwbGF5SUQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVk
IGNoYXIgZmxhZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNo
YXIgY2gpOwordm9pZCBwaWZhY2VjYWRfSEQ0NDc4MF9iYWNrbGlnaHQoUHJpdmF0ZURhdGEgKiBw
LCB1bnNpZ25lZCBjaGFyIHN0YXRlKTsKK3ZvaWQgcGlmYWNlY2FkX0hENDQ3ODBfY2xvc2UoUHJp
dmF0ZURhdGEgKiBwKTsKK3Vuc2lnbmVkIGNoYXIgcGlmYWNlY2FkX0hENDQ3ODBfc2NhbmtleXBh
ZChQcml2YXRlRGF0YSAqIHApOworCisvLyBiZWxvdyBiaXRzIGFyZSBtZWFudCBmb3IgdGhlIHVw
cGVyIG5pYmJsZSBvZiBQb3J0IEIgb24gdGhlIE1DUDIzUzE3CisjZGVmaW5lIEVOICAgMHgxMAor
I2RlZmluZSBSVyAgIDB4MjAKKyNkZWZpbmUgUlMgICAweDQwCisjZGVmaW5lIEJMICAgMHg4MAor
CitzdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBzcGlfbW9kZSA9IDA7CitzdGF0aWMgY29uc3Qg
dW5zaWduZWQgY2hhciBzcGlfYnB3ID0gODsgLyogYml0cyBwZXIgd29yZCAqLworc3RhdGljIGNv
bnN0IHVuc2lnbmVkIGxvbmcgc3BpX3NwZWVkID0gMTAwMDAwMDBMOyAvKiAxME1IeiAqLworc3Rh
dGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgc3BpX2RlbGF5ID0gMDsKKworI2RlZmluZSBTUElfSFdf
QUREUiAwCisjZGVmaW5lIERFRkFVTFRfREVWSUNFICAgICAgIi9kZXYvc3BpZGV2MC4xIgorCisj
ZGVmaW5lIERFTEFZX1BVTFNFX1VTIDEgLy8gMXVzCisjZGVmaW5lIERFTEFZX1NFVFRMRV9VUyA0
MCAvLyA0MHVzCisjZGVmaW5lIERFTEFZX1NFVFVQXzBfVVMgMTUwMDAgLy8gMTVtcworI2RlZmlu
ZSBERUxBWV9TRVRVUF8xX1VTIDUwMDAgLy8gNW1zCisjZGVmaW5lIERFTEFZX1NFVFVQXzJfVVMg
MTAwMCAvLyAxbXMKKworLy8gTUNQMjNTMTcKKyNkZWZpbmUgV1JJVEVfQ01EIDAKKyNkZWZpbmUg
UkVBRF9DTUQgMQorCisvLyBSZWdpc3RlciBhZGRyZXNzZXMKKyNkZWZpbmUgSU9ESVJBIDB4MDAg
IC8vIEkvTyBkaXJlY3Rpb24gQQorI2RlZmluZSBJT0RJUkIgMHgwMSAgLy8gSS9PIGRpcmVjdGlv
biBCCisjZGVmaW5lIElQT0xBIDB4MDIgIC8vIEkvTyBwb2xhcml0eSBBCisjZGVmaW5lIElQT0xC
IDB4MDMgIC8vIEkvTyBwb2xhcml0eSBCCisjZGVmaW5lIEdQSU5URU5BIDB4MDQgIC8vIGludGVy
dXB0IGVuYWJsZSBBCisjZGVmaW5lIEdQSU5URU5CIDB4MDUgIC8vIGludGVydXB0IGVuYWJsZSBC
CisjZGVmaW5lIERFRlZBTEEgMHgwNiAgLy8gcmVnaXN0ZXIgZGVmYXVsdCB2YWx1ZSBBIChpbnRl
cnVwdHMpCisjZGVmaW5lIERFRlZBTEIgMHgwNyAgLy8gcmVnaXN0ZXIgZGVmYXVsdCB2YWx1ZSBC
IChpbnRlcnVwdHMpCisjZGVmaW5lIElOVENPTkEgMHgwOCAgLy8gaW50ZXJ1cHQgY29udHJvbCBB
CisjZGVmaW5lIElOVENPTkIgMHgwOSAgLy8gaW50ZXJ1cHQgY29udHJvbCBCCisjZGVmaW5lIElP
Q09OIDB4MEEgIC8vIEkvTyBjb25maWcgKGFsc28gMHgwQikKKyNkZWZpbmUgR1BQVUEgMHgwQyAg
Ly8gcG9ydCBBIHB1bGx1cHMKKyNkZWZpbmUgR1BQVUIgMHgwRCAgLy8gcG9ydCBCIHB1bGx1cHMK
KyNkZWZpbmUgSU5URkEgMHgwRSAgLy8gaW50ZXJ1cHQgZmxhZyBBICh3aGVyZSB0aGUgaW50ZXJ1
cHQgY2FtZSBmcm9tKQorI2RlZmluZSBJTlRGQiAweDBGICAvLyBpbnRlcnVwdCBmbGFnIEIKKyNk
ZWZpbmUgSU5UQ0FQQSAweDEwICAvLyBpbnRlcnVwdCBjYXB0dXJlIEEgKHZhbHVlIGF0IGludGVy
dXB0IGlzIHNhdmVkIGhlcmUpCisjZGVmaW5lIElOVENBUEIgMHgxMSAgLy8gaW50ZXJ1cHQgY2Fw
dHVyZSBCCisjZGVmaW5lIEdQSU9BIDB4MTIgIC8vIHBvcnQgQQorI2RlZmluZSBHUElPQiAweDEz
ICAvLyBwb3J0IEIKKyNkZWZpbmUgT0xBVEEgMHgxNCAgLy8gb3V0cHV0IGxhdGNoIEEKKyNkZWZp
bmUgT0xBVEIgMHgxNSAgLy8gb3V0cHV0IGxhdGNoIEIKKworLy8gSS9PIGNvbmZpZworI2RlZmlu
ZSBCQU5LX09GRiAweDAwICAvLyBhZGRyZXNzaW5nIG1vZGUKKyNkZWZpbmUgQkFOS19PTiAweDgw
CisjZGVmaW5lIElOVF9NSVJST1JfT04gMHg0MCAgLy8gaW50ZXJ1cHQgbWlycm9yIChJTlRhfElO
VGIpCisjZGVmaW5lIElOVF9NSVJST1JfT0ZGIDB4MDAKKyNkZWZpbmUgU0VRT1BfT0ZGIDB4MjAg
IC8vIGluY3JlbWVudGluZyBhZGRyZXNzIHBvaW50ZXIKKyNkZWZpbmUgU0VRT1BfT04gMHgwMAor
I2RlZmluZSBESVNTTFdfT04gMHgxMCAgLy8gc2xldyByYXRlCisjZGVmaW5lIERJU1NMV19PRkYg
MHgwMAorI2RlZmluZSBIQUVOX09OIDB4MDggIC8vIGhhcmR3YXJlIGFkZHJlc3NpbmcKKyNkZWZp
bmUgSEFFTl9PRkYgMHgwMAorI2RlZmluZSBPRFJfT04gMHgwNCAgLy8gb3BlbiBkcmFpbiBmb3Ig
aW50ZXJ1cHRzCisjZGVmaW5lIE9EUl9PRkYgMHgwMAorI2RlZmluZSBJTlRQT0xfSElHSCAweDAy
ICAvLyBpbnRlcnVwdCBwb2xhcml0eQorI2RlZmluZSBJTlRQT0xfTE9XIDB4MDAKKworI2RlZmlu
ZSBTV0lUQ0hfUE9SVCAweDEyIC8vIEdQSU9BCisjZGVmaW5lIExDRF9QT1JUIDB4MTMgLy8gR1BJ
T0IKKworI2RlZmluZSBTV0lUQ0hfTEVGVCAweDQxIC8vIExlZnQgbmF2ICg2KSBhbmQgYnV0dG9u
IDAgKDApIDBiMDEwMDAwMDEKKyNkZWZpbmUgU1dJVENIX0RPV04gMHgwMiAvLyBCdXR0b24gMSAo
MSkgMGIwMDAwMDAxMAorI2RlZmluZSBTV0lUQ0hfVVAgMHgwNCAvLyBCdXR0b24gMiAoMikgMGIw
MDAwMDEwMAorI2RlZmluZSBTV0lUQ0hfUklHSFQgMHg4OCAvLyBSaWdodCBuYXYgKDcpIGFuZCBi
dXR0b24gMyAoMykgMGIxMDAwMTAwMAorI2RlZmluZSBTV0lUQ0hfRU5URVIgMHgyNCAvLyBJbiBu
YXYgKDUpIGFuZCBidXR0b24gNCAoNCkgMGIwMDEwMDEwMAorCisvKioKKyAqIFdyaXRlcyB0byBh
IHJlZ2lzdGVyIG9uIHRoZSBNQ1AyM1MxNy4KKyAqCisgKiBccGFyYW0gcCAgICAgUG9pbnRlciB0
byBQcml2YXRlRGF0YSBzdHJ1Y3R1cmUuCisgKiBccGFyYW0gcmVnICAgUmVnaXN0ZXIgYWRkcmVz
cyB0byB3cml0ZSB0by4KKyAqIFxwYXJhbSBkYXRhICBEYXRhIHRvIHdyaXRlCisgKi8KK3N0YXRp
YyB2b2lkCittY3AyM3MxN193cml0ZV9yZWcoUHJpdmF0ZURhdGEgKiBwLCB1bnNpZ25lZCBjaGFy
IHJlZywgdW5zaWduZWQgY2hhciBkYXRhKQoreworICAgIHVuc2lnbmVkIGNoYXIgdHhfYnVmWzNd
ID0gezB4NDAgfCBTUElfSFdfQUREUiB8IFdSSVRFX0NNRCwgcmVnLCBkYXRhfTsKKyAgICB1bnNp
Z25lZCBjaGFyIHJ4X2J1ZltzaXplb2YgdHhfYnVmXTsKKworICAgIHN0cnVjdCBzcGlfaW9jX3Ry
YW5zZmVyIHNwaTsKKyAgICBzcGkudHhfYnVmID0gKHVuc2lnbmVkIGxvbmcpIHR4X2J1ZjsKKyAg
ICBzcGkucnhfYnVmID0gKHVuc2lnbmVkIGxvbmcpIHJ4X2J1ZjsKKyAgICBzcGkubGVuID0gc2l6
ZW9mIHR4X2J1ZjsKKyAgICBzcGkuZGVsYXlfdXNlY3MgPSBzcGlfZGVsYXk7CisgICAgc3BpLnNw
ZWVkX2h6ID0gc3BpX3NwZWVkOworICAgIHNwaS5iaXRzX3Blcl93b3JkID0gc3BpX2JwdzsKKwor
ICAgIC8qIGRvIHRoZSBTUEkgdHJhbnNhY3Rpb24gKi8KKyAgICBpZiAoaW9jdGwocC0+ZmQsIFNQ
SV9JT0NfTUVTU0FHRSgxKSwgJnNwaSkgPCAxKSB7CisgICAgICAgIHAtPmhkNDQ3ODBfZnVuY3Rp
b25zLT5kcnZfcmVwb3J0KAorICAgICAgICAgICAgUlBUX0VSUiwgIkhENDQ3ODA6IFBpRmFjZUNB
RDogbWNwMjNzMTdfd3JpdGVfcmVnOiBUaGVyZSB3YXMgIgorICAgICAgICAgICAgICAgICAgICAg
ImEgZXJyb3IgZHVyaW5nIHRoZSBTUEkgdHJhbnNhY3Rpb246ICVzIiwKKyAgICAgICAgICAgIHN0
cmVycm9yKGVycm5vKSk7CisgICAgfQorfQorCisvKioKKyAqIFJlYWRzIGZyb20gYSByZWdpc3Rl
ciBvbiB0aGUgTUNQMjNTMTcuCisgKgorICogXHBhcmFtIHAgICAgIFBvaW50ZXIgdG8gUHJpdmF0
ZURhdGEgc3RydWN0dXJlLgorICogXHBhcmFtIHJlZyAgIFJlZ2lzdGVyIGFkZHJlc3MgdG8gcmVh
ZCBmcm9tLgorICovCitzdGF0aWMgdW5zaWduZWQgY2hhcgorbWNwMjNzMTdfcmVhZF9yZWcoUHJp
dmF0ZURhdGEgKiBwLCB1bnNpZ25lZCBjaGFyIHJlZykKK3sKKyAgICB1bnNpZ25lZCBjaGFyIHR4
X2J1ZlszXSA9IHsweDQwIHwgU1BJX0hXX0FERFIgfCBSRUFEX0NNRCwgcmVnLCAwfTsKKyAgICB1
bnNpZ25lZCBjaGFyIHJ4X2J1ZltzaXplb2YgdHhfYnVmXTsKKworICAgIHN0cnVjdCBzcGlfaW9j
X3RyYW5zZmVyIHNwaTsKKyAgICBzcGkudHhfYnVmID0gKHVuc2lnbmVkIGxvbmcpIHR4X2J1ZjsK
KyAgICBzcGkucnhfYnVmID0gKHVuc2lnbmVkIGxvbmcpIHJ4X2J1ZjsKKyAgICBzcGkubGVuID0g
c2l6ZW9mIHR4X2J1ZjsKKyAgICBzcGkuZGVsYXlfdXNlY3MgPSBzcGlfZGVsYXk7CisgICAgc3Bp
LnNwZWVkX2h6ID0gc3BpX3NwZWVkOworICAgIHNwaS5iaXRzX3Blcl93b3JkID0gc3BpX2JwdzsK
KworICAgIC8qIGRvIHRoZSBTUEkgdHJhbnNhY3Rpb24gKi8KKyAgICBpZiAoaW9jdGwocC0+ZmQs
IFNQSV9JT0NfTUVTU0FHRSgxKSwgJnNwaSkgPCAxKSB7CisgICAgICAgIHAtPmhkNDQ3ODBfZnVu
Y3Rpb25zLT5kcnZfcmVwb3J0KAorICAgICAgICAgICAgUlBUX0VSUiwgIkhENDQ3ODA6IFBpRmFj
ZUNBRDogbWNwMjNzMTdfd3JpdGVfcmVnOiBUaGVyZSB3YXMiCisgICAgICAgICAgICAgICAgICAg
ICAiYSBlcnJvciBkdXJpbmcgdGhlIFNQSSB0cmFuc2FjdGlvbjogJXMiLAorICAgICAgICAgICAg
c3RyZXJyb3IoZXJybm8pKTsKKyAgICB9CisgICAgcmV0dXJuIHJ4X2J1ZlsyXTsgLyogcmV0dXJu
IGRhdGEgKi8KK30KKworLyoqCisgKiBXcml0ZXMgY29udHJvbCBhbmQgZGF0YSB0byBIRDQ0Nzgw
IHRocm91Z2ggUG9ydCBCIG9uIE1DUDIzUzE3LgorICoKKyAqIFxwYXJhbSBwICAgICBQb2ludGVy
IHRvIHRoZSBQcml2YXRlRGF0YSBzdHJ1Y3R1cmUuCisgKiBccGFyYW0gZGF0YSAgVGhlIGRhdGEg
dG8gd3JpdGUuCisgKi8KK3N0YXRpYyB2b2lkCit3cml0ZV9hbmRfcHVsc2UoUHJpdmF0ZURhdGEg
KiBwLCB1bnNpZ25lZCBjaGFyIGRhdGEpCit7CisgICAgLyogRW5hYmxlOiBPZmYvT24vT2ZmIC0g
RG9lc24ndCBzZWVtIHRvIHdvcmsgYW55IG90aGVyIHdheS4gKi8KKyAgICBtY3AyM3MxN193cml0
ZV9yZWcocCwgTENEX1BPUlQsIGRhdGEpOworICAgIGlmIChwLT5kZWxheUJ1cykKKyAgICAgICAg
cC0+aGQ0NDc4MF9mdW5jdGlvbnMtPnVQYXVzZShwLCBERUxBWV9QVUxTRV9VUyk7CisgICAgbWNw
MjNzMTdfd3JpdGVfcmVnKHAsIExDRF9QT1JULCBFTiB8IGRhdGEpOworICAgIGlmIChwLT5kZWxh
eUJ1cykKKyAgICAgICAgcC0+aGQ0NDc4MF9mdW5jdGlvbnMtPnVQYXVzZShwLCBERUxBWV9QVUxT
RV9VUyk7CisgICAgbWNwMjNzMTdfd3JpdGVfcmVnKHAsIExDRF9QT1JULCBkYXRhKTsKKworICAg
IHAtPmhkNDQ3ODBfZnVuY3Rpb25zLT51UGF1c2UocCwgREVMQVlfU0VUVExFX1VTKTsKK30KKwor
LyoqCisgKiBJbml0aWFsaXNlcyB0aGUgSEQ0NDc4MC4KKyAqCisgKiBccGFyYW0gcCAgICAgUG9p
bnRlciB0byB0aGUgUHJpdmF0ZURhdGEgc3RydWN0dXJlLgorICovCitzdGF0aWMgdm9pZAoraW5p
dF9sY2QoUHJpdmF0ZURhdGEgKiBwKQoreworICAgIHAtPmhkNDQ3ODBfZnVuY3Rpb25zLT51UGF1
c2UocCwgREVMQVlfU0VUVVBfMF9VUyk7CisgICAgd3JpdGVfYW5kX3B1bHNlKHAsIDB4Myk7CisK
KyAgICBwLT5oZDQ0NzgwX2Z1bmN0aW9ucy0+dVBhdXNlKHAsIERFTEFZX1NFVFVQXzFfVVMpOwor
ICAgIHdyaXRlX2FuZF9wdWxzZShwLCAweDMpOworCisgICAgcC0+aGQ0NDc4MF9mdW5jdGlvbnMt
PnVQYXVzZShwLCBERUxBWV9TRVRVUF8yX1VTKTsKKyAgICB3cml0ZV9hbmRfcHVsc2UocCwgMHgz
KTsKKworICAgIHdyaXRlX2FuZF9wdWxzZShwLCAweDIpOworCisgICAgcGlmYWNlY2FkX0hENDQ3
ODBfc2VuZGRhdGEocCwgMCwgUlNfSU5TVFIsCisgICAgICAgIEZVTkNTRVQgfCBJRl80QklUIHwg
VFdPTElORSB8IFNNQUxMQ0hBUik7CisKKyAgICBwaWZhY2VjYWRfSEQ0NDc4MF9zZW5kZGF0YShw
LCAwLCBSU19JTlNUUiwKKyAgICAgICAgT05PRkZDVFJMfCBESVNQT0ZGIHwgQ1VSU09ST0ZGIHwg
Q1VSU09STk9CTElOSyk7CisKKyAgICBwaWZhY2VjYWRfSEQ0NDc4MF9zZW5kZGF0YShwLCAwLCBS
U19JTlNUUiwgQ0xFQVIpOworCisgICAgcGlmYWNlY2FkX0hENDQ3ODBfc2VuZGRhdGEocCwgMCwg
UlNfSU5TVFIsCisgICAgICAgIEVOVFJZTU9ERSB8IEVfTU9WRVJJR0hUIHwgTk9TQ1JPTEwpOwor
fQorCisvKioKKyAqIEluaXRpYWxpemUgdGhlIGRyaXZlci4KKyAqCisgKiBccGFyYW0gZHJ2dGhp
cyAgUG9pbnRlciB0byBkcml2ZXIgc3RydWN0dXJlLgorICogXHJldHZhbCAwICAgICAgIFN1Y2Nl
c3MuCisgKiBccmV0dmFsIC0xICAgICAgRXJyb3IuCisgKi8KK2ludAoraGRfaW5pdF9waWZhY2Vj
YWQoRHJpdmVyICpkcnZ0aGlzKQoreworICAgIFByaXZhdGVEYXRhICpwID0gKFByaXZhdGVEYXRh
KikgZHJ2dGhpcy0+cHJpdmF0ZV9kYXRhOworICAgIEhENDQ3ODBfZnVuY3Rpb25zICpoZDQ0Nzgw
X2Z1bmN0aW9ucyA9IHAtPmhkNDQ3ODBfZnVuY3Rpb25zOworCisgICAgY2hhciBkZXZpY2VbMjU2
XSA9IERFRkFVTFRfREVWSUNFOworCisgICAgcC0+YmFja2xpZ2h0X2JpdCA9IEJMOworCisgICAg
LyogUkVBRCBDT05GSUcgRklMRSAqLworICAgIC8qIEdldCBzZXJpYWwgZGV2aWNlIHRvIHVzZSAo
Y29waWVkIGZyb20gaTJjKSAqLworICAgIHN0cm5jcHkoZGV2aWNlLAorICAgICAgICAgICAgZHJ2
dGhpcy0+Y29uZmlnX2dldF9zdHJpbmcoZHJ2dGhpcy0+bmFtZSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJEZXZpY2UiLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IERFRkFVTFRfREVWSUNFKSwKKyAgICAgICAgICAgIHNpemVvZihkZXZpY2UpKTsKKyAgICBkZXZp
Y2Vbc2l6ZW9mKGRldmljZSktMV0gPSAnXDAnOworICAgIHJlcG9ydChSUFRfSU5GTywgIkhENDQ3
ODA6IFBpRmFjZUNBRDogVXNpbmcgZGV2aWNlICclcyciLCBkZXZpY2UpOworCisgICAgLyogT3Bl
biB0aGUgU1BJIGRldmljZSAqLworICAgIGlmICgocC0+ZmQgPSBvcGVuKGRldmljZSwgT19SRFdS
KSkgPCAwKSB7CisgICAgICAgIHJlcG9ydChSUFRfRVJSLAorICAgICAgICAgICAgICAgIkhENDQ3
ODA6IFBpRmFjZUNBRDogb3BlbiBTUEkgZGV2aWNlICclcycgZmFpbGVkOiAlcyIsCisgICAgICAg
ICAgICAgICBkZXZpY2UsCisgICAgICAgICAgICAgICBzdHJlcnJvcihlcnJubykpOworICAgICAg
ICByZXR1cm4gLTE7CisgICAgfQorCisgICAgLyogY29uZmlndXJlIFNQSSBkZXZpY2UgKi8KKyAg
ICBpZiAoaW9jdGwocC0+ZmQsIFNQSV9JT0NfV1JfTU9ERSwgJnNwaV9tb2RlKSA8IDApIHsKKyAg
ICAgICAgcmVwb3J0KFJQVF9FUlIsICJIRDQ0NzgwOiBQaUZhY2VDQUQ6IENvdWxkIG5vdCBzZXQg
U1BJIG1vZGUuIik7CisgICAgICAgIHJldHVybiAtMTsKKyAgICB9CisgICAgaWYgKGlvY3RsKHAt
PmZkLCBTUElfSU9DX1dSX0JJVFNfUEVSX1dPUkQsICZzcGlfYnB3KSA8IDApIHsKKyAgICAgICAg
cmVwb3J0KFJQVF9FUlIsICJIRDQ0NzgwOiBQaUZhY2VDQUQgQ291bGQgbm90IHNldCBTUEkgYml0
cyBwZXIgd29yZC4iKTsKKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKyAgICBpZiAoaW9jdGwo
cC0+ZmQsIFNQSV9JT0NfV1JfTUFYX1NQRUVEX0haLCAmc3BpX3NwZWVkKSA8IDApIHsKKyAgICAg
ICAgcmVwb3J0KFJQVF9FUlIsICJIRDQ0NzgwOiBQaUZhY2VDQUQ6IENvdWxkIG5vdCBzZXQgU1BJ
IHNwZWVkLiIpOworICAgICAgICByZXR1cm4gLTE7CisgICAgfQorCisgICAgLyogU2V0IElPIGNv
bmZpZyAqLworICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgaW9jb25maWcgPSBCQU5LX09GRiB8IFwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSU5UX01JUlJPUl9PRkYgfCBcCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNFUU9QX09OIHwgXAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBESVNTTFdfT0ZGIHwgXAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBIQUVOX09OIHwgXAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBPRFJfT0ZGIHwgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBJTlRQT0xfTE9XOworICAgIG1jcDIzczE3X3dyaXRlX3JlZyhwLCBJT0NPTiwgaW9jb25maWcp
OworICAgIG1jcDIzczE3X3dyaXRlX3JlZyhwLCBJT0RJUkIsIDApOyAvKiBTZXQgR1BJT0IgKExD
RCBwb3J0KSB0byBvdXRwdXQgKi8KKyAgICBtY3AyM3MxN193cml0ZV9yZWcocCwgSU9ESVJBLCAw
eGZmKTsgLyogU2V0IEdQSU9BIChzd2l0Y2hlcykgdG8gaW5wdXQgKi8KKworICAgIGhkNDQ3ODBf
ZnVuY3Rpb25zLT5zZW5kZGF0YSA9IHBpZmFjZWNhZF9IRDQ0NzgwX3NlbmRkYXRhOworICAgIGhk
NDQ3ODBfZnVuY3Rpb25zLT5iYWNrbGlnaHQgPSBwaWZhY2VjYWRfSEQ0NDc4MF9iYWNrbGlnaHQ7
CisgICAgaGQ0NDc4MF9mdW5jdGlvbnMtPmNsb3NlID0gcGlmYWNlY2FkX0hENDQ3ODBfY2xvc2U7
CisgICAgaGQ0NDc4MF9mdW5jdGlvbnMtPnNjYW5rZXlwYWQgPSBwaWZhY2VjYWRfSEQ0NDc4MF9z
Y2Fua2V5cGFkOworCisgICAgaW5pdF9sY2QocCk7CisKKyAgICBoZDQ0NzgwX2Z1bmN0aW9ucy0+
dVBhdXNlKHAsIERFTEFZX1NFVFRMRV9VUyk7CisKKyAgICBjb21tb25faW5pdChwLCBJRl80QklU
KTsKKworICAgIHJlcG9ydChSUFRfSU5GTywgIkhENDQ3ODA6IHBpZmFjZWNhZDogaW5pdGlhbGlz
ZWQiKTsKKworICAgIHJldHVybiAwOworfQorCisvKioKKyAqIENsb3NlcyB0aGUgZmlsZSBkZXNj
cmlwdG9yIG9mIHRoZSBIRDQ0NzgwIChTUEkgYnVzIHRvIE1DUDIzUzE3KS4KKyAqCisgKiBccGFy
YW0gcCAgUG9pbnRlciB0byBkcml2ZXIncyBwcml2YXRlIGRhdGEgc3RydWN0dXJlLgorICovCit2
b2lkCitwaWZhY2VjYWRfSEQ0NDc4MF9jbG9zZShQcml2YXRlRGF0YSAqIHApIHsKKyAgICBpZiAo
cC0+ZmQgPj0gMCkgeworICAgICAgICBjbG9zZShwLT5mZCk7CisgICAgfQorfQorCisKKy8qKgor
ICogU2VuZCBkYXRhIG9yIGNvbW1hbmRzIHRvIHRoZSBkaXNwbGF5LgorICoKKyAqIFxwYXJhbSBw
ICAgICAgICAgIFBvaW50ZXIgdG8gZHJpdmVyJ3MgcHJpdmF0ZSBkYXRhIHN0cnVjdHVyZS4KKyAq
IFxwYXJhbSBkaXNwbGF5SUQgIElEIG9mIHRoZSBkaXNwbGF5IChvciAwIGZvciBhbGwpIHRvIHNl
bmQgZGF0YSB0by4KKyAqIFxwYXJhbSBmbGFncyAgICAgIERlZmluZXMgd2hldGhlciB0byBlbmQg
YSBjb21tYW5kIG9yIGRhdGEuCisgKiBccGFyYW0gY2ggICAgICAgICBUaGUgdmFsdWUgdG8gc2Vu
ZC4KKyAqLwordm9pZAorcGlmYWNlY2FkX0hENDQ3ODBfc2VuZGRhdGEoUHJpdmF0ZURhdGEgKiBw
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBkaXNwbGF5SUQsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIGZsYWdzLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBjaCkKK3sKKyAgICB1bnNpZ25lZCBjaGFy
IHBvcnRDb250cm9sID0gMDsKKyAgICB1bnNpZ25lZCBjaGFyIGggPSAoY2ggPj4gNCkgJiAweDBm
OyAvLyBoaWdoIGFuZCBsb3cgbmliYmxlcworICAgIHVuc2lnbmVkIGNoYXIgbCA9IGNoICYgMHgw
ZjsKKworICAgIGlmIChmbGFncyA9PSBSU19JTlNUUikKKyAgICAgICAgcG9ydENvbnRyb2wgPSAw
OworICAgIGVsc2UgLy9pZiAoZmxhZ3MgPT0gUlNfREFUQSkKKyAgICAgICAgcG9ydENvbnRyb2wg
PSBSUzsKKworICAgIHBvcnRDb250cm9sIHw9IHAtPmJhY2tsaWdodF9iaXQ7CisKKyAgICB3cml0
ZV9hbmRfcHVsc2UocCwgcG9ydENvbnRyb2wgfCBoKTsKKyAgICB3cml0ZV9hbmRfcHVsc2UocCwg
cG9ydENvbnRyb2wgfCBsKTsKK30KKworCisvKioKKyAqIFR1cm4gZGlzcGxheSBiYWNrbGlnaHQg
b24gb3Igb2ZmLgorICoKKyAqIFxwYXJhbSBwICAgICAgUG9pbnRlciB0byBkcml2ZXIncyBwcml2
YXRlIGRhdGEgc3RydWN0dXJlLgorICogXHBhcmFtIHN0YXRlICBOZXcgYmFja2xpZ2h0IHN0YXR1
cy4KKyAqLwordm9pZCBwaWZhY2VjYWRfSEQ0NDc4MF9iYWNrbGlnaHQoUHJpdmF0ZURhdGEgKnAs
IHVuc2lnbmVkIGNoYXIgc3RhdGUpCit7CisgICAgcC0+YmFja2xpZ2h0X2JpdCA9ICgocC0+aGF2
ZV9iYWNrbGlnaHQgJiYgc3RhdGUpID8gQkwgOiAwKTsKKyAgICB1bnNpZ25lZCBjaGFyIHBvcnRf
c3RhdGUgPSBtY3AyM3MxN19yZWFkX3JlZyhwLCBMQ0RfUE9SVCk7CisgICAgaWYgKHAtPmJhY2ts
aWdodF9iaXQpCisgICAgICAgIHBvcnRfc3RhdGUgfD0gQkw7IC8vIHNldAorICAgIGVsc2UKKyAg
ICAgICAgcG9ydF9zdGF0ZSAmPSAweGZmIF4gQkw7CisgICAgbWNwMjNzMTdfd3JpdGVfcmVnKHAs
IExDRF9QT1JULCBwb3J0X3N0YXRlKTsKK30KKworCisvKioKKyAqIFNjYW4gdGhlIExDRCBrZXlz
CisgKgorICogXHBhcmFtIHAgICAgICBQb2ludGVyIHRvIGRyaXZlcidzIHByaXZhdGUgZGF0YSBz
dHJ1Y3R1cmUuCisgKiBccmV0dmFsIGtleSAgIEtleSBudW1iZXIKKyAqLwordW5zaWduZWQgY2hh
cgorcGlmYWNlY2FkX0hENDQ3ODBfc2NhbmtleXBhZChQcml2YXRlRGF0YSAqcCkKK3sKKyAgICB1
bnNpZ25lZCBjaGFyIHN3aXRjaF9zdGF0ZSA9IG1jcDIzczE3X3JlYWRfcmVnKHAsIFNXSVRDSF9Q
T1JUKTsKKworICAgIGlmIChzd2l0Y2hfc3RhdGUgPT0gMCkKKyAgICAgICAgcmV0dXJuIDA7CisK
KyAgICBpZiAoc3dpdGNoX3N0YXRlICYgU1dJVENIX0xFRlQpCisgICAgICAgIHJldHVybiAxOwor
CisgICAgaWYgKHN3aXRjaF9zdGF0ZSAmIFNXSVRDSF9ET1dOKQorICAgICAgICByZXR1cm4gMjsK
KworICAgIGlmIChzd2l0Y2hfc3RhdGUgJiBTV0lUQ0hfVVApCisgICAgICAgIHJldHVybiAzOwor
CisgICAgaWYgKHN3aXRjaF9zdGF0ZSAmIFNXSVRDSF9SSUdIVCkKKyAgICAgICAgcmV0dXJuIDQ7
CisKKyAgICBpZiAoc3dpdGNoX3N0YXRlICYgU1dJVENIX0VOVEVSKQorICAgICAgICByZXR1cm4g
NTsKKworICAgIHJldHVybiAwOworfQpkaWZmIC11ck4gLVggL2hvbWUvdG9tL0Rvd25sb2Fkcy9s
Y2Rwcm9jL2xjZHByb2MvZGlmZl9pZ25vcmUgL2hvbWUvdG9tL0Rvd25sb2Fkcy9sY2Rwcm9jL2xj
ZHByb2Mvc2VydmVyL2RyaXZlcnMvaGQ0NDc4MC1waWZhY2VjYWQuaCBsY2Rwcm9jL2xjZHByb2Mv
c2VydmVyL2RyaXZlcnMvaGQ0NDc4MC1waWZhY2VjYWQuaAotLS0gL2hvbWUvdG9tL0Rvd25sb2Fk
cy9sY2Rwcm9jL2xjZHByb2Mvc2VydmVyL2RyaXZlcnMvaGQ0NDc4MC1waWZhY2VjYWQuaAkxOTcw
LTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysgbGNkcHJvYy9sY2Rwcm9jL3NlcnZl
ci9kcml2ZXJzL2hkNDQ3ODAtcGlmYWNlY2FkLmgJMjAxMy0xMS0yOCAxMDo0NzoxNC45NDc0Mzcw
NjcgKzAwMDAKQEAgLTAsMCArMSw5IEBACisjaWZuZGVmIEhEX1BJRkFDRUNBRF9ICisjZGVmaW5l
IEhEX1BJRkFDRUNBRF9ICisKKyNpbmNsdWRlICJsY2QuaCIJCQkJCSAgLyogZm9yIERyaXZlciAq
LworCisvLyBpbml0aWFsaXNlIHRoaXMgcGFydGljdWxhciBkcml2ZXIKK2ludCBoZF9pbml0X3Bp
ZmFjZWNhZChEcml2ZXIgKmRydnRoaXMpOworCisjZW5kaWYKZGlmZiAtdXJOIC1YIC9ob21lL3Rv
bS9Eb3dubG9hZHMvbGNkcHJvYy9sY2Rwcm9jL2RpZmZfaWdub3JlIC9ob21lL3RvbS9Eb3dubG9h
ZHMvbGNkcHJvYy9sY2Rwcm9jL3NlcnZlci9kcml2ZXJzL01ha2VmaWxlLmFtIGxjZHByb2MvbGNk
cHJvYy9zZXJ2ZXIvZHJpdmVycy9NYWtlZmlsZS5hbQotLS0gL2hvbWUvdG9tL0Rvd25sb2Fkcy9s
Y2Rwcm9jL2xjZHByb2Mvc2VydmVyL2RyaXZlcnMvTWFrZWZpbGUuYW0JMjAxMy0wNS0wOCAyMDox
OTo1Ni4wMDAwMDAwMDAgKzAxMDAKKysrIGxjZHByb2MvbGNkcHJvYy9zZXJ2ZXIvZHJpdmVycy9N
YWtlZmlsZS5hbQkyMDEzLTExLTI4IDEwOjQ0OjA4Ljc5NTYxMTU3NSArMDAwMApAQCAtOTUsNyAr
OTUsNyBAQAogZ2xjZGxpYl9TT1VSQ0VTID0gICAgbGNkLmggbGNkX2xpYi5oIGdsY2RsaWIuaCBn
bGNkbGliLmMgcmVwb3J0LmgKIGdsa19TT1VSQ0VTID0gICAgICAgIGxjZC5oIGdsay5jIGdsay5o
IGdsa3Byb3RvLmMgZ2xrcHJvdG8uaCByZXBvcnQuaAogaGQ0NDc4MF9TT1VSQ0VTID0gICAgbGNk
LmggbGNkX2xpYi5oIGhkNDQ3ODAuaCBoZDQ0NzgwLmMgaGQ0NDc4MC1kcml2ZXJzLmggaGQ0NDc4
MC1sb3cuaCBoZDQ0NzgwLWNoYXJtYXAuaCByZXBvcnQuaCBhZHZfYmlnbnVtLmgKLUVYVFJBX2hk
NDQ3ODBfU09VUkNFUyA9IHBvcnQuaCBscHQtcG9ydC5oIHRpbWluZy5oIGxjZF9zZW0uYyBsY2Rf
c2VtLmggaGQ0NDc4MC00Yml0LmMgaGQ0NDc4MC00Yml0LmggaGQ0NDc4MC1leHQ4Yml0LmMgaGQ0
NDc4MC1leHQ4Yml0LmggaGQ0NDc4MC1zZXJpYWxMcHQuYyBoZDQ0NzgwLXNlcmlhbExwdC5oIGhk
NDQ3ODAtc2VyaWFsLmMgaGQ0NDc4MC1zZXJpYWwuaCBoZDQ0NzgwLXdpbmFtcC5jIGhkNDQ3ODAt
d2luYW1wLmggaGQ0NDc4MC1id2N0LXVzYi5jIGhkNDQ3ODAtYndjdC11c2IuaCBoZDQ0NzgwLWxj
ZDJ1c2IuYyBoZDQ0NzgwLWxjZDJ1c2IuaCBoZDQ0NzgwLXVzYnRpbnkuYyBoZDQ0NzgwLXVzYnRp
bnkuaCBoZDQ0NzgwLWxpczIuYyBoZDQ0NzgwLWxpczIuaCBoZDQ0NzgwLWkyYy5jIGhkNDQ3ODAt
aTJjLmggaGQ0NDc4MC1mdGRpLmMgaGQ0NDc4MC1mdGRpLmggaGQ0NDc4MC1ldGhsY2QuYyBoZDQ0
NzgwLWV0aGxjZC5oIGhkNDQ3ODAtdXNzNzIwLmMgaGQ0NDc4MC11c3M3MjAuaCBoZDQ0NzgwLXVz
YmxjZC5jIGhkNDQ3ODAtdXNibGNkLmggaGQ0NDc4MC11c2I0YWxsLmMgaGQ0NDc4MC11c2I0YWxs
LmggaGQ0NDc4MC1ycGkuYyBoZDQ0NzgwLXJwaS5oIGhkNDQ3ODAtcGlwbGF0ZS5jIGhkNDQ3ODAt
cGlwbGF0ZS5oCitFWFRSQV9oZDQ0NzgwX1NPVVJDRVMgPSBwb3J0LmggbHB0LXBvcnQuaCB0aW1p
bmcuaCBsY2Rfc2VtLmMgbGNkX3NlbS5oIGhkNDQ3ODAtNGJpdC5jIGhkNDQ3ODAtNGJpdC5oIGhk
NDQ3ODAtZXh0OGJpdC5jIGhkNDQ3ODAtZXh0OGJpdC5oIGhkNDQ3ODAtc2VyaWFsTHB0LmMgaGQ0
NDc4MC1zZXJpYWxMcHQuaCBoZDQ0NzgwLXNlcmlhbC5jIGhkNDQ3ODAtc2VyaWFsLmggaGQ0NDc4
MC13aW5hbXAuYyBoZDQ0NzgwLXdpbmFtcC5oIGhkNDQ3ODAtYndjdC11c2IuYyBoZDQ0NzgwLWJ3
Y3QtdXNiLmggaGQ0NDc4MC1sY2QydXNiLmMgaGQ0NDc4MC1sY2QydXNiLmggaGQ0NDc4MC11c2J0
aW55LmMgaGQ0NDc4MC11c2J0aW55LmggaGQ0NDc4MC1saXMyLmMgaGQ0NDc4MC1saXMyLmggaGQ0
NDc4MC1pMmMuYyBoZDQ0NzgwLWkyYy5oIGhkNDQ3ODAtZnRkaS5jIGhkNDQ3ODAtZnRkaS5oIGhk
NDQ3ODAtZXRobGNkLmMgaGQ0NDc4MC1ldGhsY2QuaCBoZDQ0NzgwLXVzczcyMC5jIGhkNDQ3ODAt
dXNzNzIwLmggaGQ0NDc4MC11c2JsY2QuYyBoZDQ0NzgwLXVzYmxjZC5oIGhkNDQ3ODAtdXNiNGFs
bC5jIGhkNDQ3ODAtdXNiNGFsbC5oIGhkNDQ3ODAtcnBpLmMgaGQ0NDc4MC1ycGkuaCBoZDQ0Nzgw
LXBpcGxhdGUuYyBoZDQ0NzgwLXBpcGxhdGUuaCBoZDQ0NzgwLXBpZmFjZWNhZC5jIGhkNDQ3ODAt
cGlmYWNlY2FkLmgKIGkyNTAwdmZkX1NPVVJDRVMgPSAgIGxjZC5oIGkyNTAwdmZkLmMgaTI1MDB2
ZmQuaCBnbGNkX2ZvbnQ1eDguaCByZXBvcnQuaAogaWNwX2ExMDZfU09VUkNFUyA9ICAgbGNkLmgg
bGNkX2xpYi5oIGljcF9hMTA2LmMgaWNwX2ExMDYuaCByZXBvcnQuaAogaW1vbl9TT1VSQ0VTID0g
ICAgICAgbGNkLmggbGNkX2xpYi5oIGhkNDQ3ODAtY2hhcm1hcC5oIGltb24uaCBpbW9uLmMgcmVw
b3J0LmggYWR2X2JpZ251bS5oCg==
--047d7b2e4c027973d404ec5021d0
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
LCDproc mailing list
[email protected]
http://lists.omnipotent.net/mailman/listinfo/lcdproc

--047d7b2e4c027973d404ec5021d0--