[kaffe] sysdepCallMethod() tests galore

Gwenole Beauchesne gbeauchesne@mandrakesoft.com
Thu May 15 06:24:02 2003


  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.

---1463777692-244575926-1053005237=:27811
Content-Type: TEXT/PLAIN; charset=US-ASCII

Hi,

I attached a small testcase for sysdepCallMethod(). This exhausted a bug 
in the IA-64 version. The AMD64 version is fine and I have not tried on 
regular IA-32 yet.

Bye,
Gwenole.

---1463777692-244575926-1053005237=:27811
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="test_sysdepCallMethod.c"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.LNX.4.44.0305151527170.27811@thalys.mandrakesoft.com>
Content-Description: sysdepCallMethod() tests
Content-Disposition: attachment; filename="test_sysdepCallMethod.c"

I2lmIDANCmV4ZWMgJHtDQzotZ2NjfSAkQ0ZMQUdTIC1JLi4gLUkuLi9pbmNs
dWRlIC1JLi4vY29uZmlnIC1JLi4va2FmZmUgJDAgLW8gJHswJSUuY30NCiNl
bmRpZg0KDQojaW5jbHVkZSA8c3RkaW8uaD4NCiNpbmNsdWRlIDxzdGRpbnQu
aD4NCg0KLyogQmFzaWMgdHlwZXMgZGVmaW5pdGlvbnMgKi8NCiNpbmNsdWRl
ICJrYWZmZXZtL2d0eXBlcy5oIg0KDQojZGVmaW5lIE5FRURfc3lzZGVwQ2Fs
bE1ldGhvZCAxDQojaW5jbHVkZSAia2FmZmV2bS9zdXBwb3J0LmgiDQojaW5j
bHVkZSAibWQuaCINCg0Kc3RhdGljIGNvbnN0IGNoYXIgY2hhcl92ID0gJ1Yn
Ow0Kc3RhdGljIGNvbnN0IGNoYXIgY2hhcl9jID0gJ0MnOw0Kc3RhdGljIGNv
bnN0IGNoYXIgY2hhcl9zID0gJ1MnOw0Kc3RhdGljIGNvbnN0IGNoYXIgY2hh
cl9pID0gJ0knOw0Kc3RhdGljIGNvbnN0IGNoYXIgY2hhcl9qID0gJ0onOw0K
c3RhdGljIGNvbnN0IGNoYXIgY2hhcl9mID0gJ0YnOw0Kc3RhdGljIGNvbnN0
IGNoYXIgY2hhcl9kID0gJ0QnOw0KI2RlZmluZSBKVFlQRUNIQVIoVCkgKGNo
YXJfIyNUKQ0KDQpzdGF0aWMgaW50IGFyZ3NpemUoY2hhciB0eXBlKSB7DQog
IGludCBzID0gMDsNCiAgc3dpdGNoICh0eXBlKSB7DQogIGNhc2UgJ1YnOg0K
ICAgIHMgPSAwOw0KICAgIGJyZWFrOw0KICBjYXNlICdDJzoNCiAgY2FzZSAn
Uyc6DQogIGNhc2UgJ0knOg0KICBjYXNlICdGJzoNCiAgICBzID0gMTsNCiAg
ICBicmVhazsNCiAgY2FzZSAnSic6DQogIGNhc2UgJ0QnOg0KICAgIHMgPSAy
Ow0KICAgIGJyZWFrOw0KICBkZWZhdWx0Og0KICAgIGFib3J0KCk7DQogIH0N
CiAgcmV0dXJuIHM7DQp9DQoNCnN0YXRpYyB2b2lkIHByaW50X2p2YWx1ZShj
b25zdCBjaGFyICptc2csIGNvbnN0IGp2YWx1ZSAqdmFsdWUsIGNoYXIgdHlw
ZSkgew0KICBpZiAobXNnKQ0KICAgIHByaW50ZigiJXMiLCBtc2cpOw0KICBz
d2l0Y2ggKHR5cGUpIHsNCiAgY2FzZSAnVic6DQogICAgcHJpbnRmKCJ2b2lk
Iik7DQogICAgYnJlYWs7DQogIGNhc2UgJ0MnOg0KICAgIHByaW50ZigiJWMi
LCB2YWx1ZS0+Yyk7DQogICAgYnJlYWs7DQogIGNhc2UgJ1MnOg0KICAgIHBy
aW50ZigiJWQiLCB2YWx1ZS0+cyk7DQogICAgYnJlYWs7DQogIGNhc2UgJ0kn
Og0KICAgIHByaW50ZigiJWQiLCB2YWx1ZS0+aSk7DQogICAgYnJlYWs7DQog
IGNhc2UgJ0onOg0KICAgIHByaW50ZigiJWxsZCIsIHZhbHVlLT5qKTsNCiAg
ICBicmVhazsNCiAgY2FzZSAnRic6DQogICAgcHJpbnRmKCIlZiIsIHZhbHVl
LT5mKTsNCiAgICBicmVhazsNCiAgY2FzZSAnRCc6DQogICAgcHJpbnRmKCIl
bGYiLCB2YWx1ZS0+ZCk7DQogICAgYnJlYWs7DQogIGRlZmF1bHQ6DQogICAg
YWJvcnQoKTsNCiAgfQ0KfQ0KDQojZGVmaW5lIENBTExfSU5WT0tFX0RPX1BS
RVBBUkVfTihBUkdOTywgVFlQRSwgVkFMKQlcDQogIGFyZ3NbQVJHTk9dLlRZ
UEUgPSBWQUw7CQkJCVwNCiAgY2FsbC5jYWxsc2l6ZVtBUkdOT10gPSBhcmdz
aXplKEpUWVBFQ0hBUihUWVBFKSk7CVwNCiAgY2FsbC5jYWxsdHlwZVtBUkdO
T10gPSBKVFlQRUNIQVIoVFlQRSk7DQoNCiNkZWZpbmUgQ0FMTF9JTlZPS0Vf
UFJFUEFSRV8wKC4uLikJCS8qIG5vdGhpbmcgKi8NCiNkZWZpbmUgQ0FMTF9J
TlZPS0VfUFJFUEFSRV8xKFRZUEUsIFZBTCwgLi4uKQlDQUxMX0lOVk9LRV9E
T19QUkVQQVJFX04oMCwgVFlQRSwgVkFMKQ0KI2RlZmluZSBDQUxMX0lOVk9L
RV9QUkVQQVJFXzIoVFlQRSwgVkFMLCAuLi4pCUNBTExfSU5WT0tFX0RPX1BS
RVBBUkVfTigxLCBUWVBFLCBWQUwpOyBDQUxMX0lOVk9LRV9QUkVQQVJFXzEo
X19WQV9BUkdTX18pDQojZGVmaW5lIENBTExfSU5WT0tFX1BSRVBBUkVfMyhU
WVBFLCBWQUwsIC4uLikJQ0FMTF9JTlZPS0VfRE9fUFJFUEFSRV9OKDIsIFRZ
UEUsIFZBTCk7IENBTExfSU5WT0tFX1BSRVBBUkVfMihfX1ZBX0FSR1NfXykN
CiNkZWZpbmUgQ0FMTF9JTlZPS0VfUFJFUEFSRV80KFRZUEUsIFZBTCwgLi4u
KQlDQUxMX0lOVk9LRV9ET19QUkVQQVJFX04oMywgVFlQRSwgVkFMKTsgQ0FM
TF9JTlZPS0VfUFJFUEFSRV8zKF9fVkFfQVJHU19fKQ0KI2RlZmluZSBDQUxM
X0lOVk9LRV9QUkVQQVJFXzUoVFlQRSwgVkFMLCAuLi4pCUNBTExfSU5WT0tF
X0RPX1BSRVBBUkVfTig0LCBUWVBFLCBWQUwpOyBDQUxMX0lOVk9LRV9QUkVQ
QVJFXzQoX19WQV9BUkdTX18pDQojZGVmaW5lIENBTExfSU5WT0tFX1BSRVBB
UkVfNihUWVBFLCBWQUwsIC4uLikJQ0FMTF9JTlZPS0VfRE9fUFJFUEFSRV9O
KDUsIFRZUEUsIFZBTCk7IENBTExfSU5WT0tFX1BSRVBBUkVfNShfX1ZBX0FS
R1NfXykNCiNkZWZpbmUgQ0FMTF9JTlZPS0VfUFJFUEFSRV83KFRZUEUsIFZB
TCwgLi4uKQlDQUxMX0lOVk9LRV9ET19QUkVQQVJFX04oNiwgVFlQRSwgVkFM
KTsgQ0FMTF9JTlZPS0VfUFJFUEFSRV82KF9fVkFfQVJHU19fKQ0KI2RlZmlu
ZSBDQUxMX0lOVk9LRV9QUkVQQVJFXzgoVFlQRSwgVkFMLCAuLi4pCUNBTExf
SU5WT0tFX0RPX1BSRVBBUkVfTig3LCBUWVBFLCBWQUwpOyBDQUxMX0lOVk9L
RV9QUkVQQVJFXzcoX19WQV9BUkdTX18pDQojZGVmaW5lIENBTExfSU5WT0tF
X1BSRVBBUkVfOShUWVBFLCBWQUwsIC4uLikJQ0FMTF9JTlZPS0VfRE9fUFJF
UEFSRV9OKDgsIFRZUEUsIFZBTCk7IENBTExfSU5WT0tFX1BSRVBBUkVfOChf
X1ZBX0FSR1NfXykNCiNkZWZpbmUgQ0FMTF9JTlZPS0VfUFJFUEFSRV8xMChU
WVBFLCBWQUwsIC4uLikJQ0FMTF9JTlZPS0VfRE9fUFJFUEFSRV9OKDksIFRZ
UEUsIFZBTCk7IENBTExfSU5WT0tFX1BSRVBBUkVfOShfX1ZBX0FSR1NfXykN
CiNkZWZpbmUgQ0FMTF9JTlZPS0VfUFJFUEFSRV8xMShUWVBFLCBWQUwsIC4u
LikJQ0FMTF9JTlZPS0VfRE9fUFJFUEFSRV9OKDEwLCBUWVBFLCBWQUwpOyBD
QUxMX0lOVk9LRV9QUkVQQVJFXzEwKF9fVkFfQVJHU19fKQ0KI2RlZmluZSBD
QUxMX0lOVk9LRV9QUkVQQVJFXzEyKFRZUEUsIFZBTCwgLi4uKQlDQUxMX0lO
Vk9LRV9ET19QUkVQQVJFX04oMTEsIFRZUEUsIFZBTCk7IENBTExfSU5WT0tF
X1BSRVBBUkVfMTEoX19WQV9BUkdTX18pDQojZGVmaW5lIENBTExfSU5WT0tF
X1BSRVBBUkVfMTMoVFlQRSwgVkFMLCAuLi4pCUNBTExfSU5WT0tFX0RPX1BS
RVBBUkVfTigxMiwgVFlQRSwgVkFMKTsgQ0FMTF9JTlZPS0VfUFJFUEFSRV8x
MihfX1ZBX0FSR1NfXykNCiNkZWZpbmUgQ0FMTF9JTlZPS0VfUFJFUEFSRV8x
NChUWVBFLCBWQUwsIC4uLikJQ0FMTF9JTlZPS0VfRE9fUFJFUEFSRV9OKDEz
LCBUWVBFLCBWQUwpOyBDQUxMX0lOVk9LRV9QUkVQQVJFXzEzKF9fVkFfQVJH
U19fKQ0KI2RlZmluZSBDQUxMX0lOVk9LRV9QUkVQQVJFXzE1KFRZUEUsIFZB
TCwgLi4uKQlDQUxMX0lOVk9LRV9ET19QUkVQQVJFX04oMTQsIFRZUEUsIFZB
TCk7IENBTExfSU5WT0tFX1BSRVBBUkVfMTQoX19WQV9BUkdTX18pDQojZGVm
aW5lIENBTExfSU5WT0tFX1BSRVBBUkVfMTYoVFlQRSwgVkFMLCAuLi4pCUNB
TExfSU5WT0tFX0RPX1BSRVBBUkVfTigxNSwgVFlQRSwgVkFMKTsgQ0FMTF9J
TlZPS0VfUFJFUEFSRV8xNShfX1ZBX0FSR1NfXykNCiNkZWZpbmUgQ0FMTF9J
TlZPS0VfUFJFUEFSRV8xNyhUWVBFLCBWQUwsIC4uLikJQ0FMTF9JTlZPS0Vf
RE9fUFJFUEFSRV9OKDE2LCBUWVBFLCBWQUwpOyBDQUxMX0lOVk9LRV9QUkVQ
QVJFXzE2KF9fVkFfQVJHU19fKQ0KI2RlZmluZSBDQUxMX0lOVk9LRV9QUkVQ
QVJFXzE4KFRZUEUsIFZBTCwgLi4uKQlDQUxMX0lOVk9LRV9ET19QUkVQQVJF
X04oMTcsIFRZUEUsIFZBTCk7IENBTExfSU5WT0tFX1BSRVBBUkVfMTcoX19W
QV9BUkdTX18pDQojZGVmaW5lIENBTExfSU5WT0tFX1BSRVBBUkVfMTkoVFlQ
RSwgVkFMLCAuLi4pCUNBTExfSU5WT0tFX0RPX1BSRVBBUkVfTigxOCwgVFlQ
RSwgVkFMKTsgQ0FMTF9JTlZPS0VfUFJFUEFSRV8xOChfX1ZBX0FSR1NfXykN
CiNkZWZpbmUgQ0FMTF9JTlZPS0VfUFJFUEFSRV8yMChUWVBFLCBWQUwsIC4u
LikJQ0FMTF9JTlZPS0VfRE9fUFJFUEFSRV9OKDE5LCBUWVBFLCBWQUwpOyBD
QUxMX0lOVk9LRV9QUkVQQVJFXzE5KF9fVkFfQVJHU19fKQ0KI2RlZmluZSBD
QUxMX0lOVk9LRV9QUkVQQVJFKE5BUkdTLCAuLi4pCQlDQUxMX0lOVk9LRV9Q
UkVQQVJFXyMjTkFSR1MoX19WQV9BUkdTX18pDQoNCiNkZWZpbmUgU1dBUChY
LCBZKSBkbyB7CQkJCVwNCiAgdHlwZW9mKFgpIFQgPSBYOwkJCQlcDQogIFgg
PSBZOwkJCQkJXA0KICBZID0gVDsJCQkJCVwNCn0gd2hpbGUgKDApDQoNCiNk
ZWZpbmUgQ0FMTF9JTlZPS0UoRlVOQywgUkVUVFlQRSwgTkFSR1MsIC4uLikg
ZG8gewlcDQogIGp2YWx1ZSBhcmdzW05BUkdTXTsJCQkJCVwNCiAganZhbHVl
IHJldDsJCQkJCQlcDQogIGNhbGxNZXRob2RJbmZvIGNhbGw7CQkJCQlcDQog
IGludCBpLCBzID0gMDsJCQkJCQlcDQogIGNhbGwuZnVuY3Rpb24gPSAmRlVO
QzsJCQkJXA0KICBjYWxsLnJldCA9ICZyZXQ7CQkJCQlcDQogIGNhbGwucmV0
c2l6ZSA9IGFyZ3NpemUoSlRZUEVDSEFSKFJFVFRZUEUpKTsJCVwNCiAgY2Fs
bC5yZXR0eXBlID0gSlRZUEVDSEFSKFJFVFRZUEUpOwkJCVwNCiAgY2FsbC5u
cmFyZ3MgPSBOQVJHUzsJCQkJCVwNCiAgY2FsbC5hcmdzID0gYXJnczsJCQkJ
CVwNCiAgQ0FMTF9JTlZPS0VfUFJFUEFSRShOQVJHUywgIyNfX1ZBX0FSR1Nf
XywgMSk7CQlcDQogIGZvciAoaSA9IDA7IGkgPCBOQVJHUzsgaSsrKQkJCQlc
DQogICAgcyArPSBjYWxsLmNhbGxzaXplW2ldOwkJCQlcDQogIC8qIHJldmVy
c2UgYXJndW1lbnRzICovCQkJCVwNCiAgZm9yIChpID0gMDsgaSA8IE5BUkdT
LzI7IGkrKykgewkJCVwNCiAgICBjb25zdCBpbnQgeCA9IGksIHkgPSBOQVJH
UyAtIGkgLSAxOwkJCVwNCiAgICBTV0FQKGFyZ3NbeF0sIGFyZ3NbeV0pOwkJ
CQlcDQogICAgU1dBUChjYWxsLmNhbGxzaXplW3hdLCBjYWxsLmNhbGxzaXpl
W3ldKTsJCVwNCiAgICBTV0FQKGNhbGwuY2FsbHR5cGVbeF0sIGNhbGwuY2Fs
bHR5cGVbeV0pOwkJXA0KICB9CQkJCQkJCVwNCiAgY2FsbC5hcmdzaXplID0g
czsJCQkJCVwNCiAgc3lzZGVwQ2FsbE1ldGhvZCgmY2FsbCk7CQkJCVwNCiAg
cHJpbnRfanZhbHVlKCJyZXR1cm5zOiAiLCAmcmV0LCBjYWxsLnJldHR5cGUp
OwlcDQogIHByaW50ZigiXG4iKTsJCQkJCQlcDQp9IHdoaWxlICgwKQ0KDQoj
ZGVmaW5lIENBTExfRElSRUNUX0VYUEFORF8wKC4uLikJCS8qIG5vdGhpbmcg
Ki8NCiNkZWZpbmUgQ0FMTF9ESVJFQ1RfRVhQQU5EXzEoVFlQRSwgVkFMKQkJ
VkFMDQojZGVmaW5lIENBTExfRElSRUNUX0VYUEFORF8yKFRZUEUsIFZBTCwg
Li4uKQlWQUwsIENBTExfRElSRUNUX0VYUEFORF8xKF9fVkFfQVJHU19fKQ0K
I2RlZmluZSBDQUxMX0RJUkVDVF9FWFBBTkRfMyhUWVBFLCBWQUwsIC4uLikJ
VkFMLCBDQUxMX0RJUkVDVF9FWFBBTkRfMihfX1ZBX0FSR1NfXykNCiNkZWZp
bmUgQ0FMTF9ESVJFQ1RfRVhQQU5EXzQoVFlQRSwgVkFMLCAuLi4pCVZBTCwg
Q0FMTF9ESVJFQ1RfRVhQQU5EXzMoX19WQV9BUkdTX18pDQojZGVmaW5lIENB
TExfRElSRUNUX0VYUEFORF81KFRZUEUsIFZBTCwgLi4uKQlWQUwsIENBTExf
RElSRUNUX0VYUEFORF80KF9fVkFfQVJHU19fKQ0KI2RlZmluZSBDQUxMX0RJ
UkVDVF9FWFBBTkRfNihUWVBFLCBWQUwsIC4uLikJVkFMLCBDQUxMX0RJUkVD
VF9FWFBBTkRfNShfX1ZBX0FSR1NfXykNCiNkZWZpbmUgQ0FMTF9ESVJFQ1Rf
RVhQQU5EXzcoVFlQRSwgVkFMLCAuLi4pCVZBTCwgQ0FMTF9ESVJFQ1RfRVhQ
QU5EXzYoX19WQV9BUkdTX18pDQojZGVmaW5lIENBTExfRElSRUNUX0VYUEFO
RF84KFRZUEUsIFZBTCwgLi4uKQlWQUwsIENBTExfRElSRUNUX0VYUEFORF83
KF9fVkFfQVJHU19fKQ0KI2RlZmluZSBDQUxMX0RJUkVDVF9FWFBBTkRfOShU
WVBFLCBWQUwsIC4uLikJVkFMLCBDQUxMX0RJUkVDVF9FWFBBTkRfOChfX1ZB
X0FSR1NfXykNCiNkZWZpbmUgQ0FMTF9ESVJFQ1RfRVhQQU5EXzEwKFRZUEUs
IFZBTCwgLi4uKQlWQUwsIENBTExfRElSRUNUX0VYUEFORF85KF9fVkFfQVJH
U19fKQ0KI2RlZmluZSBDQUxMX0RJUkVDVF9FWFBBTkRfMTEoVFlQRSwgVkFM
LCAuLi4pCVZBTCwgQ0FMTF9ESVJFQ1RfRVhQQU5EXzEwKF9fVkFfQVJHU19f
KQ0KI2RlZmluZSBDQUxMX0RJUkVDVF9FWFBBTkRfMTIoVFlQRSwgVkFMLCAu
Li4pCVZBTCwgQ0FMTF9ESVJFQ1RfRVhQQU5EXzExKF9fVkFfQVJHU19fKQ0K
I2RlZmluZSBDQUxMX0RJUkVDVF9FWFBBTkRfMTMoVFlQRSwgVkFMLCAuLi4p
CVZBTCwgQ0FMTF9ESVJFQ1RfRVhQQU5EXzEyKF9fVkFfQVJHU19fKQ0KI2Rl
ZmluZSBDQUxMX0RJUkVDVF9FWFBBTkRfMTQoVFlQRSwgVkFMLCAuLi4pCVZB
TCwgQ0FMTF9ESVJFQ1RfRVhQQU5EXzEzKF9fVkFfQVJHU19fKQ0KI2RlZmlu
ZSBDQUxMX0RJUkVDVF9FWFBBTkRfMTUoVFlQRSwgVkFMLCAuLi4pCVZBTCwg
Q0FMTF9ESVJFQ1RfRVhQQU5EXzE0KF9fVkFfQVJHU19fKQ0KI2RlZmluZSBD
QUxMX0RJUkVDVF9FWFBBTkRfMTYoVFlQRSwgVkFMLCAuLi4pCVZBTCwgQ0FM
TF9ESVJFQ1RfRVhQQU5EXzE1KF9fVkFfQVJHU19fKQ0KI2RlZmluZSBDQUxM
X0RJUkVDVF9FWFBBTkRfMTcoVFlQRSwgVkFMLCAuLi4pCVZBTCwgQ0FMTF9E
SVJFQ1RfRVhQQU5EXzE2KF9fVkFfQVJHU19fKQ0KI2RlZmluZSBDQUxMX0RJ
UkVDVF9FWFBBTkRfMTgoVFlQRSwgVkFMLCAuLi4pCVZBTCwgQ0FMTF9ESVJF
Q1RfRVhQQU5EXzE3KF9fVkFfQVJHU19fKQ0KI2RlZmluZSBDQUxMX0RJUkVD
VF9FWFBBTkRfMTkoVFlQRSwgVkFMLCAuLi4pCVZBTCwgQ0FMTF9ESVJFQ1Rf
RVhQQU5EXzE4KF9fVkFfQVJHU19fKQ0KI2RlZmluZSBDQUxMX0RJUkVDVF9F
WFBBTkRfMjAoVFlQRSwgVkFMLCAuLi4pCVZBTCwgQ0FMTF9ESVJFQ1RfRVhQ
QU5EXzE5KF9fVkFfQVJHU19fKQ0KI2RlZmluZSBDQUxMX0RJUkVDVF9BUkdT
KE5BUkdTLCAuLi4pCQlDQUxMX0RJUkVDVF9FWFBBTkRfIyNOQVJHUyhfX1ZB
X0FSR1NfXykNCg0KI2RlZmluZSBDQUxMX0RJUkVDVF9SRVRfdihSRVRWQUws
IFRZUEUsIEZVTkMpCUZVTkMNCiNkZWZpbmUgQ0FMTF9ESVJFQ1RfUkVUX3go
UkVUVkFMLCBUWVBFLCBGVU5DKQlSRVRWQUwuVFlQRSA9IEZVTkMNCiNkZWZp
bmUgQ0FMTF9ESVJFQ1RfUkVUX2MJCQlDQUxMX0RJUkVDVF9SRVRfeA0KI2Rl
ZmluZSBDQUxMX0RJUkVDVF9SRVRfcwkJCUNBTExfRElSRUNUX1JFVF94DQoj
ZGVmaW5lIENBTExfRElSRUNUX1JFVF9pCQkJQ0FMTF9ESVJFQ1RfUkVUX3gN
CiNkZWZpbmUgQ0FMTF9ESVJFQ1RfUkVUX2oJCQlDQUxMX0RJUkVDVF9SRVRf
eA0KI2RlZmluZSBDQUxMX0RJUkVDVF9SRVRfZgkJCUNBTExfRElSRUNUX1JF
VF94DQojZGVmaW5lIENBTExfRElSRUNUX1JFVF9kCQkJQ0FMTF9ESVJFQ1Rf
UkVUX3gNCg0KI2RlZmluZSBET19DQUxMX0RJUkVDVChGVU5DLCBSRVRWQUws
IFJFVFRZUEUsIE5BUkdTLCAuLi4pIFwNCiAgQ0FMTF9ESVJFQ1RfUkVUXyMj
UkVUVFlQRShSRVRWQUwsIFJFVFRZUEUsIEZVTkMpKENBTExfRElSRUNUX0FS
R1MoTkFSR1MsIF9fVkFfQVJHU19fKSkNCg0KI2RlZmluZSBDQUxMX0RJUkVD
VChGVU5DLCBSRVRUWVBFLCBOQVJHUywgLi4uKSBkbyB7CQkJXA0KICBqdmFs
dWUgcmV0dmFsOwkJCQkJCQlcDQogIGNoYXIgcmV0dHlwZSA9IEpUWVBFQ0hB
UihSRVRUWVBFKTsJCQkJCVwNCiAgRE9fQ0FMTF9ESVJFQ1QoRlVOQywgcmV0
dmFsLCBSRVRUWVBFLCBOQVJHUywgX19WQV9BUkdTX18pOwkJXA0KICBwcmlu
dF9qdmFsdWUoInJldHVybnM6ICIsICZyZXR2YWwsIHJldHR5cGUpOwkJCQlc
DQogIHByaW50ZigiXG4iKTsJCQkJCQkJCVwNCn0gd2hpbGUgKDApDQoNCiNk
ZWZpbmUgQ0FMTChGVU5DLCBSRVRUWVBFLCBOQVJHUywgLi4uKQkJICAgICAg
CQkJXA0KICBwcmludGYoIiMgJXM6ICVzID0+ICVzXG4iLCAjRlVOQywgI19f
VkFfQVJHU19fLCAjUkVUVFlQRSk7CQlcDQogIENBTExfRElSRUNUKEZVTkMs
IFJFVFRZUEUsIE5BUkdTLCBfX1ZBX0FSR1NfXyk7CQkJXA0KICBDQUxMX0lO
Vk9LRShGVU5DLCBSRVRUWVBFLCBOQVJHUywgX19WQV9BUkdTX18pOwkJCVwN
CiAgcHJpbnRmKCJcbiIpOw0KICANCg0Kc3RhdGljIHZvaWQgZl92X3Yodm9p
ZCkNCnsNCn0NCg0Kc3RhdGljIHZvaWQgZl92X2koamludCBpKQ0Kew0KICBw
cmludGYoIiVkXG4iLCBpKTsNCn0NCg0Kc3RhdGljIHZvaWQgZl92X2lqKGpp
bnQgaSwgamxvbmcgaikNCnsNCiAgcHJpbnRmKCIlZCwgJWxsZFxuIiwgaSwg
aik7DQp9DQoNCnN0YXRpYyB2b2lkIGZfdl9jaWooamNoYXIgYywgamludCBp
LCBqbG9uZyBqKQ0Kew0KICBwcmludGYoIiVjLCAlZCwgJWxsZFxuIiwgYywg
aSwgaik7DQp9DQoNCnN0YXRpYyB2b2lkIGZfdl9jc2lqZmQoamNoYXIgYywg
anNob3J0IHMsIGppbnQgaSwgamxvbmcgaiwgamZsb2F0IGYsIGpkb3VibGUg
ZCkNCnsNCiAgcHJpbnRmKCIlYywgJWQsICVkLCAlbGxkLCAlZiwgJWxmXG4i
LCBjLCBzLCBpLCBqLCBmLCBkKTsNCn0NCg0Kc3RhdGljIHZvaWQgZl92X2Zp
ZGpmZmlqZGRqamlpZGZkKGpmbG9hdCBwMSwgamludCBwMiwgamRvdWJsZSBw
MywgamxvbmcgcDQsIGpmbG9hdCBwNSwNCgkJCQkgIGpmbG9hdCBwNiwgamlu
dCBwNywgamxvbmcgcDgsIGpkb3VibGUgcDksIGpkb3VibGUgcDEwLA0KCQkJ
CSAgamxvbmcgcDExLCBqbG9uZyBwMTIsIGppbnQgcDEzLCBqaW50IHAxNCwg
amRvdWJsZSBwMTUsDQoJCQkJICBqZmxvYXQgcDE2LCBqZG91YmxlIHAxNykN
CnsNCiAgcHJpbnRmKCIlZiwgJWQsICVsZiwgJWxsZCwgJWYsICVmLCAlZCwg
JWxsZCwgJWxmLCAlbGYsICVsbGQsICVsbGQsICVkLCAlZCwgJWxmLCAlZiwg
JWxmXG4iLA0KCSBwMSwgcDIsIHAzLCBwNCwgcDUsIHA2LCBwNywgcDgsIHA5
LCBwMTAsIHAxMSwgcDEyLCBwMTMsIHAxNCwgcDE1LCBwMTYsIHAxNyk7DQp9
DQoNCnN0YXRpYyBqY2hhciBmX2NfYyhqY2hhciBjKQ0Kew0KICBwcmludGYo
IiVjXG4iLCBjKTsNCiAgcmV0dXJuIGMgKyAnQScgLSAnYSc7DQp9DQoNCnN0
YXRpYyBqc2hvcnQgZl9zX2lpKGppbnQgeCwgamludCB5KQ0Kew0KICBwcmlu
dGYoIiVkLCAlZFxuIiwgeCwgeSk7DQogIHJldHVybiB4ICsgeTsNCn0NCg0K
c3RhdGljIGppbnQgYWRkXzJpKGppbnQgcDEsIGppbnQgcDIpDQp7DQogIHBy
aW50ZigiJWQsICVkXG4iLCBwMSwgcDIpOw0KICByZXR1cm4gcDEgKyBwMjsN
Cn0NCg0Kc3RhdGljIGpsb25nIGFkZF8yaihqbG9uZyBwMSwgamxvbmcgcDIp
DQp7DQogIHByaW50ZigiJWxsZCwgJWxsZFxuIiwgcDEsIHAyKTsNCiAgcmV0
dXJuIHAxICsgcDI7DQp9DQoNCnN0YXRpYyBqaW50IGFkZF8xMmkoamludCBw
MSwgamludCBwMiwgamludCBwMywgamludCBwNCwNCgkJICAgamludCBwNSwg
amludCBwNiwgamludCBwNywgamludCBwOCwNCgkJICAgamludCBwOSwgamlu
dCBwMTAsIGppbnQgcDExLCBqaW50IHAxMikNCnsNCiAgcmV0dXJuIHAxICsg
cDIgKyBwMyArIHA0ICsgcDUgKyBwNiArIHA3ICsgcDggKyBwOSArIHAxMCAr
IHAxMSArIHAxMjsNCn0NCg0Kc3RhdGljIGpmbG9hdCBhZGRfMmYoamZsb2F0
IHAxLCBqZmxvYXQgcDIpDQp7DQogIHJldHVybiBwMSArIHAyOw0KfQ0KDQpz
dGF0aWMgamZsb2F0IGFkZF8xMGYoamZsb2F0IHAxLCBqZmxvYXQgcDIsIGpm
bG9hdCBwMywgamZsb2F0IHA0LCBqZmxvYXQgcDUsDQoJCSAgICAgamZsb2F0
IHA2LCBqZmxvYXQgcDcsIGpmbG9hdCBwOCwgamZsb2F0IHA5LCBqZmxvYXQg
cDEwKSB7DQogIHJldHVybiBwMSArIHAyICsgcDMgKyBwNCArIHA1ICsgcDYg
KyBwNyArIHA4ICsgcDkgKyBwMTA7DQp9DQoNCnN0YXRpYyBqZG91YmxlIGFk
ZF8xMGQoamRvdWJsZSBwMSwgamRvdWJsZSBwMiwgamRvdWJsZSBwMywgamRv
dWJsZSBwNCwgamRvdWJsZSBwNSwNCgkJICAgICAgamRvdWJsZSBwNiwgamRv
dWJsZSBwNywgamRvdWJsZSBwOCwgamRvdWJsZSBwOSwgamRvdWJsZSBwMTAp
IHsNCiAgcmV0dXJuIHAxICsgcDIgKyBwMyArIHA0ICsgcDUgKyBwNiArIHA3
ICsgcDggKyBwOSArIHAxMDsNCn0NCg0Kc3RhdGljIGpmbG9hdCBhZGRfMjBm
KGpmbG9hdCBwMSwgamZsb2F0IHAyLCBqZmxvYXQgcDMsIGpmbG9hdCBwNCwg
amZsb2F0IHA1LA0KCQkgICAgIGpmbG9hdCBwNiwgamZsb2F0IHA3LCBqZmxv
YXQgcDgsIGpmbG9hdCBwOSwgamZsb2F0IHAxMCwNCgkJICAgICBqZmxvYXQg
cDExLCBqZmxvYXQgcDEyLCBqZmxvYXQgcDEzLCBqZmxvYXQgcDE0LCBqZmxv
YXQgcDE1LA0KCQkgICAgIGpmbG9hdCBwMTYsIGpmbG9hdCBwMTcsIGpmbG9h
dCBwMTgsIGpmbG9hdCBwMTksIGpmbG9hdCBwMjApDQp7DQogIHJldHVybiBw
MSArIHAyICsgcDMgKyBwNCArIHA1ICsgcDYgKyBwNyArIHA4ICsgcDkgKyBw
MTAgKyBwMTEgKyBwMTIgKyBwMTMgKw0KICAgIHAxNCArIHAxNSArIHAxNiAr
IHAxNyArIHAxOCArIHAxOSArIHAyMDsNCn0NCg0Kc3RhdGljIGpsb25nIGFk
ZF9qaWppaWppaWppKGpsb25nIHAxLCBqaW50IHAyLCBqbG9uZyBwMywgamlu
dCBwNCwgamludCBwNSwNCgkJCSAgICBqbG9uZyBwNiwgamludCBwNywgamlu
dCBwOCwgamxvbmcgcDksIGppbnQgcDEwKQ0Kew0KICByZXR1cm4gcDEgKyBw
MiArIHAzICsgcDQgKyBwNSArIHA2ICsgcDcgKyBwOCArIHA5ICsgcDEwOw0K
fQ0KDQpzdGF0aWMgamxvbmcgYWRkX2lqaWpqaWpqaWooamludCBwMSwgamxv
bmcgcDIsIGppbnQgcDMsIGpsb25nIHA0LCBqbG9uZyBwNSwNCgkJCSAgICBq
aW50IHA2LCBqbG9uZyBwNywgamxvbmcgcDgsIGppbnQgcDksIGpsb25nIHAx
MCkNCnsNCiAgcmV0dXJuIHAxICsgcDIgKyBwMyArIHA0ICsgcDUgKyBwNiAr
IHA3ICsgcDggKyBwOSArIHAxMDsNCn0NCg0Kc3RhdGljIGpkb3VibGUgYWRk
X2ZmZGRmZmRkZmRmKGpmbG9hdCBwMSwgamZsb2F0IHAyLCBqZG91YmxlIHAz
LCBqZG91YmxlIHA0LA0KCQkJICAgICAgIGpmbG9hdCBwNSwgamZsb2F0IHA2
LCBqZG91YmxlIHA3LCBqZG91YmxlIHA4LA0KCQkJICAgICAgIGpmbG9hdCBw
OSwgamRvdWJsZSBwMTAsIGpmbG9hdCBwMTEpDQp7DQogIHJldHVybiBwMSAr
IHAyICsgcDMgKyBwNCArIHA1ICsgcDYgKyBwNyArIHA4ICsgcDkgKyBwMTAg
KyBwMTE7DQp9DQoNCnN0YXRpYyBqaW50IGFkZF9maWRqZmZpamRkamppaWRm
ZChqZmxvYXQgcDEsIGppbnQgcDIsIGpkb3VibGUgcDMsIGpsb25nIHA0LCBq
ZmxvYXQgcDUsDQoJCQkJICBqZmxvYXQgcDYsIGppbnQgcDcsIGpsb25nIHA4
LCBqZG91YmxlIHA5LCBqZG91YmxlIHAxMCwNCgkJCQkgIGpsb25nIHAxMSwg
amxvbmcgcDEyLCBqaW50IHAxMywgamludCBwMTQsIGpkb3VibGUgcDE1LA0K
CQkJCSAgamZsb2F0IHAxNiwgamRvdWJsZSBwMTcpDQp7DQogIHJldHVybiBw
MSArIHAyICsgcDMgKyBwNCArIHA1ICsgcDYgKyBwNyArIHA4ICsgcDkNCiAg
ICArIHAxMCArIHAxMSArIHAxMiArIHAxMyArIHAxNCArIHAxNSArIHAxNiAr
IHAxNzsNCn0NCg0KaW50IG1haW4odm9pZCkgew0KICBDQUxMKGZfdl92LCB2
LCAwKTsNCiAgQ0FMTChmX3ZfaSwgdiwgMSwgaSwgMSk7DQogIENBTEwoZl92
X2lqLCB2LCAyLCBpLCAxLCBqLCAyKTsNCiAgQ0FMTChmX3ZfY2lqLCB2LCAz
LCBjLCAnYycsIGksIDEsIGosIDIpOw0KICBDQUxMKGZfdl9jc2lqZmQsIHYs
IDYsIGMsICdjJywgcywgMTYzODQsIGksIDEwNzM3NDE4MjMsIGosIDQ2MTE2
ODYwMTg0MjczODc5MDMsIGYsIDEuMCwgZCwgMy4xNCk7DQogIENBTEwoZl9j
X2MsIGMsIDEsIGMsICd6Jyk7DQogIENBTEwoZl9zX2lpLCBzLCAyLCBpLCAx
LCBpLCAyKTsNCg0KICAvLyB2aWV3IG1peGVkIGZsb2F0cywgZG91Ymxlcywg
aW50cyBhbmQgbG9uZ3MNCiAgQ0FMTChmX3ZfZmlkamZmaWpkZGpqaWlkZmQs
DQogICAgICAgdiwNCiAgICAgICAxNywNCiAgICAgICBmLCAxLCBpLCAyLCBk
LCAzLCBqLCA0LCBmLCA1LCBmLCA2LCBpLCA3LCBqLCA4LCBkLCA5LA0KICAg
ICAgIGQsIDEwLCBqLCAxMSwgaiwgMTIsIGksIDEzLCBpLCAxNCwgZCwgMTUs
IGYsIDE2LCBkLCAxNyk7DQoNCiAgLy8gYWRkIHR3byBpbnRzDQogIENBTEwo
YWRkXzJpLCBpLCAyLCBpLCAxLCBpLCAyKTsNCg0KICAvLyBhZGQgdHdvIGxv
bmdzDQogIENBTEwoYWRkXzJqLCBqLCAyLCBqLCAxLCBqLCAyKTsNCg0KICAv
LyBhZGQgbWFueSBpbnRzDQogIENBTEwoYWRkXzEyaSwgaSwgMTIsIGksIDEs
IGksIDIsIGksIDMsIGksIDQsIGksIDUsIGksIDYsIGksIDcsIGksIDgsIGks
IDksIGksIDEwLCBpLCAxMSwgaSwgMTIpOw0KDQogIC8vIGFkZCB0d28gZmxv
YXRzDQogIENBTEwoYWRkXzJmLCBmLCAyLCBmLCAxLjAsIGYsIDIuMCk7DQoN
CiAgLy8gYWRkIG1hbnkgZmxvYXRzDQogIENBTEwoYWRkXzEwZiwNCiAgICAg
ICBmLA0KICAgICAgIDEwLA0KICAgICAgIGYsIDEsIGYsIDIsIGYsIDMsIGYs
IDQsIGYsIDUsIGYsIDYsIGYsIDcsIGYsIDgsIGYsIDksIGYsIDEwKTsNCg0K
ICAvLyBhZGQgbWFueSBkb3VibGVzDQogIENBTEwoYWRkXzEwZCwNCiAgICAg
ICBkLA0KICAgICAgIDEwLA0KICAgICAgIGQsIDEsIGQsIDIsIGQsIDMsIGQs
IDQsIGQsIDUsIGQsIDYsIGQsIDcsIGQsIDgsIGQsIDksIGQsIDEwKTsNCg0K
ICAvLyBhZGQgbWFueSBtYW55IGZsb2F0cw0KICBDQUxMKGFkZF8yMGYsDQog
ICAgICAgZiwNCiAgICAgICAyMCwNCiAgICAgICBmLCAxLCBmLCAyLCBmLCAz
LCBmLCA0LCBmLCA1LCBmLCA2LCBmLCA3LCBmLCA4LCBmLCA5LCBmLCAxMCwN
CiAgICAgICBmLCAxMSwgZiwgMTIsIGYsIDEzLCBmLCAxNCwgZiwgMTUsIGYs
IDE2LCBmLCAxNywgZiwgMTgsIGYsIDE5LCBmLCAyMCk7DQoNCiAgLy8gYWRk
IG1peGVkIGludHMNCiAgQ0FMTChhZGRfamlqaWlqaWlqaSwNCiAgICAgICBq
LA0KICAgICAgIDEwLA0KICAgICAgIGosIDEsIGksIDIsIGosIDMsIGksIDQs
IGksIDUsIGosIDYsIGksIDcsIGksIDgsIGosIDksIGksIDEwKTsNCg0KICAv
LyBhZGQgbWl4ZWQgaW50cyAyDQogIENBTEwoYWRkX2lqaWpqaWpqaWosDQog
ICAgICAgaiwNCiAgICAgICAxMCwNCiAgICAgICBpLCAxLCBqLCAyLCBpLCAz
LCBqLCA0LCBqLCA1LCBpLCA2LCBqLCA3LCBqLCA4LCBpLCA5LCBqLCAxMCk7
DQoNCiAgLy8gYWRkIG1peGVkIGZsb2F0cw0KICBDQUxMKGFkZF9mZmRkZmZk
ZGZkZiwNCiAgICAgICBkLA0KICAgICAgIDExLA0KICAgICAgIGYsIDEsIGYs
IDIsIGQsIDMsIGQsIDQsIGYsIDUsIGYsIDYsIGQsIDcsIGQsIDgsIGYsIDks
IGQsIDEwLCBmLCAxMSk7DQoNCiAgLy8gYWRkIG1peGVkIGZsb2F0cywgZG91
YmxlcywgaW50cyBhbmQgbG9uZ3MNCiAgQ0FMTChhZGRfZmlkamZmaWpkZGpq
aWlkZmQsDQogICAgICAgaSwNCiAgICAgICAxNywNCiAgICAgICBmLCAxLCBp
LCAyLCBkLCAzLCBqLCA0LCBmLCA1LCBmLCA2LCBpLCA3LCBqLCA4LCBkLCA5
LA0KICAgICAgIGQsIDEwLCBqLCAxMSwgaiwgMTIsIGksIDEzLCBpLCAxNCwg
ZCwgMTUsIGYsIDE2LCBkLCAxNyk7DQp9DQo=
---1463777692-244575926-1053005237=:27811--