Re: Ingo's PIII FXSTOR patch [2 Mar] causes problems

Ingo Molnar (mingo@chiara.csoma.elte.hu)
Fri, 16 Apr 1999 14:38:08 +0200 (CEST)


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.

---1247997369-340642063-924266095=:20109
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
Content-ID: <Pine.LNX.3.96.990416143509.20109K@chiara.csoma.elte.hu>

i think i've found the bug. (the bug was that __put_user is self-detecting
operand sizes, and the twd in the 'hard' structure is a char, while in the
user-structure it's a long, so we silently lost significant bits.) I also
fixed two other bugs and improved performance of the conversion routines.
Does the attached patch (against 2.2.5) run your numeric application fine
now? [There is also a new #define in process.c that switches on the
'hardware-based' conversion variants, just in case there are still
problems.]

-- mingo

---1247997369-340642063-924266095=:20109
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII; NAME="fx-2.2.5-A2"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.LNX.3.96.990416143455.20109I@chiara.csoma.elte.hu>
Content-Description:

LS0tIGxpbnV4L2luY2x1ZGUvYXNtLWkzODYvYnVncy5oLm9yaWcJTW9uIEph
biAxMSAwNTowODowMyAxOTk5DQorKysgbGludXgvaW5jbHVkZS9hc20taTM4
Ni9idWdzLmgJRnJpIEFwciAxNiAxMzowMzoxOSAxOTk5DQpAQCAtMTgsNiAr
MTgsNyBAQA0KICAqLw0KIA0KICNpbmNsdWRlIDxsaW51eC9jb25maWcuaD4N
CisjaW5jbHVkZSA8bGludXgvc3RkZGVmLmg+DQogI2luY2x1ZGUgPGFzbS9w
cm9jZXNzb3IuaD4NCiANCiAjZGVmaW5lIENPTkZJR19CVUdpMzg2DQpAQCAt
NjEsNiArNjIsMzkgQEANCiAjZW5kaWYNCiAJCXJldHVybjsNCiAJfQ0KKyNp
ZiBDT05GSUdfWDg2X0ZYDQorCS8qDQorCSAqIElmIHdlIGdvdCBzbyBmYXIg
d2UgY2FuIHNhZmVseSB0dXJuIG9uIEZYU0FWRS9GWFJFU1RPUkUsDQorCSAq
IGJ1dCBtYWtlIHN1cmUgd2UgYXJlIDE2LWJ5dGUgYWxpZ25lZCBmaXJzdC4N
CisJICovDQorCWlmIChvZmZzZXRvZihzdHJ1Y3QgdGFza19zdHJ1Y3QsIHRz
cy5pMzg3LmhhcmQpICYgMTUpIHsNCisJCS8qDQorCQkgKiBUaGlzIHRyaWdn
ZXJzIGEgbGluay10aW1lIGVycm9yIGlmIHdlIG1hbmFnZSB0bw0KKwkJICog
YnJlYWsgYWxpZ25tZW50IHNvbWVob3cuDQorCQkgKi8NCisJCWV4dGVybiB2
b2lkIF9fYnVnZ3lfZnhzcl9hbGlnbm1lbnQodm9pZCk7DQorDQorCQlfX2J1
Z2d5X2Z4c3JfYWxpZ25tZW50KCk7DQorCX0NCisJcHJpbnRrKCJFbmFibGlu
ZyBleHRlbmRlZCBmYXN0IEZQVSBzYXZlIGFuZCByZXN0b3JlIC4uLiAiKTsN
CisJc2V0X2luX2NyNChYODZfQ1I0X09TRlhTUik7DQorCXByaW50aygiZG9u
ZS5cbiIpOw0KKwkvKg0KKwkgKiBOb3RlLCBLYXRtYWkgaW5zdHJ1Y3Rpb25z
IGFyZSBlbmFibGVkIGFzIHNvb24gYXMgeW91IHN0YXJ0DQorCSAqIHVzaW5n
IHRoZSBGWFNBVkUvUkVTVE9SRSBzdHVmZi4gIFRoaXMgc2V0dGluZyBvbmx5
DQorCSAqIGluZGljYXRlcyBzdXBwb3J0IGZvciB0aGUgbWFza2VkL3VubWFz
a2VkIGV4Y2VwdGlvbnMgb24NCisJICogdGhlIG5ldyBQSUlJIGNwdXMuIFdl
IGRvbid0IGhhdmUgYW4gRXhjZXB0aW9uIDE2IGhhbmRsZXINCisJICogZm9y
IHRoaXMgeWV0LCBzbyB3ZSBjYW4ndCBzZXQgdGhpcyBiaXQuDQorCSAqLw0K
KwlpZiAoYm9vdF9jcHVfZGF0YS54ODZfY2FwYWJpbGl0eSAmIFg4Nl9GRUFU
VVJFX1hNTSkgew0KKwkJcHJpbnRrKCJFbmFibGluZyBLTkkgdW5tYXNrZWQg
ZXhjZXB0aW9uIHN1cHBvcnQgLi4uIChub3QgeWV0KSAiKTsNCisjaWYgMA0K
KwkJc2V0X2luX2NyNChYODZfQ1I0X09TWE1NRVhDUFQpOw0KKyNlbmRpZg0K
KwkJcHJpbnRrKCJkb25lLlxuIik7DQorCX0NCisjZW5kaWYNCisJZGlzYWJs
ZV9zZXJpYWxfbnIoKTsNCiAJLyoNCiAJICogY2hlY2sgaWYgZXhjZXB0aW9u
IDE2IHdvcmtzIGNvcnJlY3RseS4uIFRoaXMgaXMgdHJ1bHkgZXZpbA0KIAkg
KiBjb2RlOiBpdCBkaXNhYmxlcyB0aGUgaGlnaCA4IGludGVycnVwdHMgdG8g
bWFrZSBzdXJlIHRoYXQNCkBAIC04NCwyMyArMTE4LDMxIEBADQogCQlyZXR1
cm47DQogCWlmICghaWdub3JlX2lycTEzKSB7DQogCQlwcmludGsoIk9LLCBG
UFUgdXNpbmcgb2xkIElSUSAxMyBlcnJvciByZXBvcnRpbmdcbiIpOw0KLQkJ
cmV0dXJuOw0KKwl9IGVsc2Ugew0KKwkJX19hc21fXygiZm5pbml0XG5cdCIN
CisJCQkiZmxkbCAlMVxuXHQiDQorCQkJImZkaXZsICUyXG5cdCINCisJCQki
Zm11bGwgJTJcblx0Ig0KKwkJCSJmbGRsICUxXG5cdCINCisJCQkiZnN1YnAg
JSVzdCwlJXN0KDEpXG5cdCINCisJCQkiZmlzdHBsICUwXG5cdCINCisJCQki
ZndhaXRcblx0Ig0KKwkJCSJmbmluaXQiDQorCQkJOiAiPW0iICgqJmJvb3Rf
Y3B1X2RhdGEuZmRpdl9idWcpDQorCQkJOiAibSIgKComeCksICJtIiAoKiZ5
KSk7DQorCQlpZiAoIWJvb3RfY3B1X2RhdGEuZmRpdl9idWcpDQorCQkJcHJp
bnRrKCJPSywgRlBVIHVzaW5nIGV4Y2VwdGlvbiAxNiBlcnJvciByZXBvcnRp
bmcuXG4iKTsNCisJCWVsc2UNCisJCQlwcmludGsoIkhtbSwgRlBVIHVzaW5n
IGV4Y2VwdGlvbiAxNiBlcnJvciByZXBvcnRpbmcgd2l0aCBGRElWIGJ1Zy5c
biIpOw0KIAl9DQotCV9fYXNtX18oImZuaW5pdFxuXHQiDQotCQkiZmxkbCAl
MVxuXHQiDQotCQkiZmRpdmwgJTJcblx0Ig0KLQkJImZtdWxsICUyXG5cdCIN
Ci0JCSJmbGRsICUxXG5cdCINCi0JCSJmc3VicCAlJXN0LCUlc3QoMSlcblx0
Ig0KLQkJImZpc3RwbCAlMFxuXHQiDQotCQkiZndhaXRcblx0Ig0KLQkJImZu
aW5pdCINCi0JCTogIj1tIiAoKiZib290X2NwdV9kYXRhLmZkaXZfYnVnKQ0K
LQkJOiAibSIgKComeCksICJtIiAoKiZ5KSk7DQotCWlmICghYm9vdF9jcHVf
ZGF0YS5mZGl2X2J1ZykNCi0JCXByaW50aygiT0ssIEZQVSB1c2luZyBleGNl
cHRpb24gMTYgZXJyb3IgcmVwb3J0aW5nLlxuIik7DQotCWVsc2UNCi0JCXBy
aW50aygiSG1tLCBGUFUgdXNpbmcgZXhjZXB0aW9uIDE2IGVycm9yIHJlcG9y
dGluZyB3aXRoIEZESVYgYnVnLlxuIik7DQorI2lmIENPTkZJR19YODZfRlgN
CisJLyoNCisJICogU2lsbHkgY2hlY2sgYnV0IHdlIHdhbnQgdG8gaGF2ZSBh
IHBlcmZlY3QgRlBVIGZvcg0KKwkgKiBGWFNBVkUvRlhSRVNUT1JFLg0KKwkg
Ki8NCisJaWYgKGJvb3RfY3B1X2RhdGEuZmRpdl9idWcgfHwgIWlnbm9yZV9p
cnExMykNCisJCXBhbmljKCJodWgsIFBJSUkvWGVvbi9EZXNjaHV0ZXMgQ1BV
IGJ1dCBidWdneSBGUFU/Iik7DQorI2VuZGlmDQogfQ0KIA0KIF9faW5pdGZ1
bmMoc3RhdGljIHZvaWQgY2hlY2tfaGx0KHZvaWQpKQ0KQEAgLTM1Miw2ICsz
OTQsMTMgQEANCiAjaWYgZGVmaW5lZChDT05GSUdfWDg2X0dPT0RfQVBJQykg
JiYgZGVmaW5lZChDT05GSUdfU01QKQ0KIAlpZiAoc21wX2ZvdW5kX2NvbmZp
ZyAmJiBib290X2NwdV9kYXRhLng4NiA8PSA1KQ0KIAkJcGFuaWMoIktlcm5l
bCBjb21waWxlZCBmb3IgUFBybyssIGFzc3VtZXMgbG9jYWwgQVBJQyB3aXRo
b3V0IHJlYWQtYmVmb3JlLXdyaXRlIGJ1ZyIpOw0KKyNlbmRpZg0KKy8qDQor
ICogSWYgd2UgY29uZmlndXJlZCBmb3IgRlhSUyB3ZSBiZXR0ZXIgaGF2ZSBp
dCENCisgKi8NCisjaWYgQ09ORklHX1g4Nl9GWA0KKwlpZiAoIShib290X2Nw
dV9kYXRhLng4Nl9jYXBhYmlsaXR5ICYgWDg2X0ZFQVRVUkVfRlhTUikpDQor
CQlwYW5pYygiS2VybmVsIGNvbmZpZ3VyZWQgZm9yIFhlb24vS2F0bWFpL1BJ
SUksIGJ1dCBDUFUgZG9lcyBub3Qgc3VwcG9ydCBGWFNSISIpOw0KICNlbmRp
Zg0KIH0NCiANCi0tLSBsaW51eC9pbmNsdWRlL2FzbS1pMzg2L3Byb2Nlc3Nv
ci5oLm9yaWcJVHVlIEphbiAyNiAxMDo0NzoxMCAxOTk5DQorKysgbGludXgv
aW5jbHVkZS9hc20taTM4Ni9wcm9jZXNzb3IuaAlGcmkgQXByIDE2IDEyOjU1
OjM4IDE5OTkNCkBAIC03LDEwICs3LDExIEBADQogI2lmbmRlZiBfX0FTTV9J
Mzg2X1BST0NFU1NPUl9IDQogI2RlZmluZSBfX0FTTV9JMzg2X1BST0NFU1NP
Ul9IDQogDQorI2luY2x1ZGUgPGxpbnV4L2NvbmZpZy5oPg0KICNpbmNsdWRl
IDxhc20vdm04Ni5oPg0KICNpbmNsdWRlIDxhc20vbWF0aF9lbXUuaD4NCi0j
aW5jbHVkZSA8YXNtL3NlZ21lbnQuaD4NCiAjaW5jbHVkZSA8YXNtL3BhZ2Uu
aD4NCisjaW5jbHVkZSA8YXNtL3VzZXIuaD4NCiANCiAvKg0KICAqICBDUFUg
dHlwZSBhbmQgaGFyZHdhcmUgYnVnIGZsYWdzLiBLZXB0IHNlcGFyYXRlbHkg
Zm9yIGVhY2ggQ1BVLg0KQEAgLTcxLDE0ICs3MiwxNCBAQA0KICNkZWZpbmUg
WDg2X0ZFQVRVUkVfQ01PVgkweDAwMDA4MDAwCS8qIENNT1YgaW5zdHJ1Y3Rp
b24gKEZDTU9WQ0MgYW5kIEZDT01JIHRvbyBpZiBGUFUgcHJlc2VudCkgKi8N
CiAjZGVmaW5lIFg4Nl9GRUFUVVJFX1BBVAkweDAwMDEwMDAwCS8qIFBhZ2Ug
QXR0cmlidXRlIFRhYmxlICovDQogI2RlZmluZSBYODZfRkVBVFVSRV9QU0Uz
NgkweDAwMDIwMDAwCS8qIDM2LWJpdCBQU0VzICovDQotI2RlZmluZSBYODZf
RkVBVFVSRV8xOAkJMHgwMDA0MDAwMA0KKyNkZWZpbmUgWDg2X0ZFQVRVUkVf
UE4JCTB4MDAwNDAwMDAgICAgICAvKiA5NiBiaXQgQ1BVIHNlcmlhbCAjICov
DQogI2RlZmluZSBYODZfRkVBVFVSRV8xOQkJMHgwMDA4MDAwMA0KICNkZWZp
bmUgWDg2X0ZFQVRVUkVfMjAJCTB4MDAxMDAwMDANCiAjZGVmaW5lIFg4Nl9G
RUFUVVJFXzIxCQkweDAwMjAwMDAwDQogI2RlZmluZSBYODZfRkVBVFVSRV8y
MgkJMHgwMDQwMDAwMA0KICNkZWZpbmUgWDg2X0ZFQVRVUkVfTU1YCQkweDAw
ODAwMDAwCS8qIG11bHRpbWVkaWEgZXh0ZW5zaW9ucyAqLw0KICNkZWZpbmUg
WDg2X0ZFQVRVUkVfRlhTUgkweDAxMDAwMDAwCS8qIEZYU0FWRSBhbmQgRlhS
U1RPUiBpbnN0cnVjdGlvbnMgKGZhc3Qgc2F2ZSBhbmQgcmVzdG9yZSBvZiBG
UFUgY29udGV4dCksIGFuZCBDUjQuT1NGWFNSIChPUyB1c2VzIHRoZXNlIGlu
c3RydWN0aW9ucykgYXZhaWxhYmxlICovDQotI2RlZmluZSBYODZfRkVBVFVS
RV8yNQkJMHgwMjAwMDAwMA0KKyNkZWZpbmUgWDg2X0ZFQVRVUkVfWE1NCQkw
eDAyMDAwMDAwCS8qIEludGVsIE1NWDIgaW5zdHJ1Y3Rpb24gc2V0ICovDQog
I2RlZmluZSBYODZfRkVBVFVSRV8yNgkJMHgwNDAwMDAwMA0KICNkZWZpbmUg
WDg2X0ZFQVRVUkVfMjcJCTB4MDgwMDAwMDANCiAjZGVmaW5lIFg4Nl9GRUFU
VVJFXzI4CQkweDEwMDAwMDAwDQpAQCAtODgsNiArODksNTUgQEANCiANCiBl
eHRlcm4gc3RydWN0IGNwdWluZm9feDg2IGJvb3RfY3B1X2RhdGE7DQogDQor
I2RlZmluZSBYODZfQ1I0X1ZNRQkJMHgwMDAxCS8qIGVuYWJsZSB2bTg2IGV4
dGVuc2lvbnMgKi8NCisjZGVmaW5lIFg4Nl9DUjRfUFZJCQkweDAwMDIJLyog
dmlydHVhbCBpbnRlcnJ1cHRzIGZsYWcgZW5hYmxlICovDQorI2RlZmluZSBY
ODZfQ1I0X1RTRAkJMHgwMDA0CS8qIGRpc2FibGUgdGltZSBzdGFtcCBhdCBp
cGwgMyAqLw0KKyNkZWZpbmUgWDg2X0NSNF9ERQkJMHgwMDA4CS8qIGVuYWJs
ZSBkZWJ1Z2dpbmcgZXh0ZW5zaW9ucyAqLw0KKyNkZWZpbmUgWDg2X0NSNF9Q
U0UJCTB4MDAxMAkvKiBlbmFibGUgcGFnZSBzaXplIGV4dGVuc2lvbnMgKi8N
CisjZGVmaW5lIFg4Nl9DUjRfUEFFCQkweDAwMjAJLyogZW5hYmxlIHBoeXNp
Y2FsIGFkZHJlc3MgZXh0ZW5zaW9ucyAqLw0KKyNkZWZpbmUgWDg2X0NSNF9N
Q0UJCTB4MDA0MAkvKiBNYWNoaW5lIGNoZWNrIGVuYWJsZSAqLw0KKyNkZWZp
bmUgWDg2X0NSNF9QR0UJCTB4MDA4MAkvKiBlbmFibGUgZ2xvYmFsIHBhZ2Vz
ICovDQorI2RlZmluZSBYODZfQ1I0X1BDRQkJMHgwMTAwCS8qIGVuYWJsZSBw
ZXJmb3JtYW5jZSBjb3VudGVycyBhdCBpcGwgMyAqLw0KKyNkZWZpbmUgWDg2
X0NSNF9PU0ZYU1IJCTB4MDIwMAkvKiBmYXN0IEZQVSBzYXZlL3Jlc3RvcmUg
Ki8NCisjZGVmaW5lIFg4Nl9DUjRfT1NYTU1FWENQVAkweDA0MDAJLyogS05J
IChNTVgyKSB1bm1hc2tlZCBleGNlcHRpb24gMTYgKi8NCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogaGFuZGxlciBpcyBh
dmFpbGFibGUgKi8NCisNCisvKg0KKyAqIFNhdmUgdGhlIGNyNCBmZWF0dXJl
IHNldCB3ZSdyZSB1c2luZyAoaWUNCisgKiBQZW50aXVtIDRNQiBlbmFibGUg
YW5kIFBQcm8gR2xvYmFsIHBhZ2UNCisgKiBlbmFibGUpLCBzbyB0aGF0IGFu
eSBDUFUncyB0aGF0IGJvb3QgdXANCisgKiBhZnRlciB1cyBjYW4gZ2V0IHRo
ZSBjb3JyZWN0IGZsYWdzLg0KKyAqLw0KK2V4dGVybiB1bnNpZ25lZCBsb25n
IG1tdV9jcjRfZmVhdHVyZXM7DQorDQorc3RhdGljIGlubGluZSB2b2lkIHNl
dF9pbl9jcjQodW5zaWduZWQgbG9uZyBtYXNrKQ0KK3sNCisJbW11X2NyNF9m
ZWF0dXJlcyB8PSBtYXNrOw0KKwlfX2FzbV9fKCJtb3ZsICUlY3I0LCUlZWF4
XG5cdCINCisJCSJvcmwgJTAsJSVlYXhcblx0Ig0KKwkJIm1vdmwgJSVlYXgs
JSVjcjRcbiINCisJCTogOiAiaXJnIiAobWFzaykNCisJCToiYXgiKTsNCit9
DQorDQorc3RhdGljIGlubGluZSB2b2lkIGRpc2FibGVfc2VyaWFsX25yKHZv
aWQpDQorew0KKwlpZiAoYm9vdF9jcHVfZGF0YS54ODZfY2FwYWJpbGl0eSAm
IFg4Nl9GRUFUVVJFX1BOKSB7DQorCQlwcmludGsoIkRpc2FibGluZyBDUFVJ
RCBTZXJpYWwgbnVtYmVyIC4uLiAiKTsNCisJCV9fYXNtX18gX192b2xhdGls
ZV9fKCAibW92bCAkMHgxMTksJSVlY3hcblx0Ig0KKwkJCQkicmRtc3Jcblx0
Ig0KKwkJCQkib3JsICQweDAwMjAwMDAwLCUlZWF4XG5cdCINCisJCQkJIndy
bXNyIjo6OiJheCIsImR4IiwiY3giLCJtZW1vcnkiKTsNCisJCS8qDQorCQkg
KiBXZSBtaWdodCBuZWVkIHRvIHJlLXJlYWQgdGhlIHg4NiBjYXBhYmlsaXR5
IHNldCBub3cgdG8NCisJCSAqIG1ha2Ugc3VyZSB0aGF0IHRoZSBQTiBiaXQg
aGFzIGJlZW4gdHVybmVkIG9mZiBzbw0KKwkJICogd2Uga25vdyB0aGF0IHRo
ZSBzZXJpYWwgbnVtYmVyIHN0dWZmIGlzIGRpc2FibGVkDQorCQkgKi8NCisJ
CXByaW50aygiZG9uZS5cbiIpOw0KKwl9DQorfQ0KKw0KKw0KICNpZmRlZiBf
X1NNUF9fDQogZXh0ZXJuIHN0cnVjdCBjcHVpbmZvX3g4NiBjcHVfZGF0YVtd
Ow0KICNkZWZpbmUgY3VycmVudF9jcHVfZGF0YSBjcHVfZGF0YVtzbXBfcHJv
Y2Vzc29yX2lkKCldDQpAQCAtMTY0LDYgKzIxNCwyNyBAQA0KICAqLw0KICNk
ZWZpbmUgSU9fQklUTUFQX1NJWkUJMzINCiANCisvKg0KKyAqIFdlIGhhdmUg
dHdvIChpbmNvbXBhdGlibGUpIGZsb2F0aW5nLXBvaW50IHN0YXRlICdoYXJk
JyBsYXlvdXRzOg0KKyAqDQorICogIC0gdGhlIG5ldyBNTVgyLXJlYWR5IGxh
eW91dCB1c2VkIGJ5IG5ld2VyIFBJSS9YZW9uL1BJSUkoS2F0bWFpKSBDUFVz
DQorICogIC0gdGhlICdvbGQnIGkzODcgRlBVIGxheW91dCB1c2VkIGJ5IGV2
ZXJ5dGhpbmcgZWxzZQ0KKyAqDQorICogd2UgdXNlIHRoZSBvbmUgYXByb3By
aWF0ZSBmb3IgdGhlIENQVSBwaWNrZWQgYXQga2VybmVsIGNvbXBpbGF0aW9u
IHRpbWUuDQorICoNCisgKiB0byBrZWVwIHRoZSBGUFUgY29kZSBhIGJpdCBt
b3JlIHRyYW5zcGFyZW50LCB3ZSBkZWZpbmUgdGhlIHNhbWUNCisgKiBzdHJ1
Y3R1cmUgaW4gYm90aCBjYXNlcywgdGhlIHBhcmFtZXRlciBuYW1lcyBhcmUg
aWRlbnRpY2FsIHRvby4NCisgKiBmb3IgY2FzZXMgd2hlcmUgd2UgY2Fubm90
IG1ha2UgdGhpcyB0cmFuc3BhcmVudCwgd2UgZGVmaW5lIGFjY2Vzcw0KKyAq
IGZ1bmN0aW9ucy4NCisgKg0KKyAqIHdlIGFsc28gaGF2ZSB0d28gRlBVIGZv
cm1hdHMgdmlzaWJsZSBpbiBBUElzLCAnaGFyZCBmb3JtYXQnIGFuZA0KKyAq
ICd1c2VyLWZvcm1hdCcuIFRoZSB1c2VyLWZvcm1hdCBpcyBkZWNvdXBsZWQg
ZnJvbSB0aGUgYWN0dWFsIGhhcmQNCisgKiBmb3JtYXQgKHdoaWNoIGNhbiBi
ZSBpMzg3IG9yIEtOSSkgYW5kIGNvbnZlcnNpb24gcm91dGluZXMgYXJlDQor
ICogcHJvdmlkZWQuIHVzZXItZm9ybWF0IGlzIGN1cnJlbnRseSBpMzg3LCB3
aGljaCB3ZSBjYW5ub3QgY2hhbmdlDQorICogKG9ubHkgZXh0ZW5kKSBkdWUg
dG8gZXh0ZXJuYWwgQVBJcyAoaUJDUzIsIEVMRiBjb3JlZHVtcHMsIHB0cmFj
ZSBBUEkpLg0KKyAqLw0KKw0KKyNpZm5kZWYgQ09ORklHX1g4Nl9GWA0KIHN0
cnVjdCBpMzg3X2hhcmRfc3RydWN0IHsNCiAJbG9uZwljd2Q7DQogCWxvbmcJ
c3dkOw0KQEAgLTE3Niw2ICsyNDcsODQgQEANCiAJbG9uZwlzdGF0dXM7CQkv
KiBzb2Z0d2FyZSBzdGF0dXMgaW5mb3JtYXRpb24gKi8NCiB9Ow0KIA0KKy8q
DQorICogRmlsbCBvdXQgdGhlIHJlc2VydmVkIGJpdHMNCisgKi8NCisjZGVm
aW5lIGkzODdfc2V0X2N3ZCh4LHYpIGRvIHsgKHgpLmN3ZCA9ICgobG9uZyko
dikgfCAweGZmZmYwMDAwKTsgfSB3aGlsZSAoMCkNCisjZGVmaW5lIGkzODdf
c2V0X3N3ZCh4LHYpIGRvIHsgKHgpLnN3ZCA9ICgobG9uZykodikgfCAweGZm
ZmYwMDAwKTsgfSB3aGlsZSAoMCkNCisjZGVmaW5lIGkzODdfc2V0X3R3ZCh4
LHYpIGRvIHsgKHgpLnR3ZCA9ICgobG9uZykodikgfCAweGZmZmYwMDAwKTsg
fSB3aGlsZSAoMCkNCisNCisjZGVmaW5lIGkzODdfc2F2ZV9oYXJkKHgpIFwN
CisJIGRvIHsgX19hc21fXygiZm5zYXZlICUwOyBmd2FpdDsiOiAiPW0iICh4
KSk7IH0gd2hpbGUgKDApDQorDQorI2RlZmluZSBpMzg3X3Jlc3RvcmVfaGFy
ZCh4KSBcDQorCSBkbyB7IF9fYXNtX18oImZyc3RvciAlMCI6IDoibSIgKHgp
KTsgfSB3aGlsZSAoMCkNCisNCisjZWxzZQ0KKw0KKy8qDQorICogaGFzIHRv
IGJlIDEyOC1iaXQgYWxpZ25lZA0KKyAqLw0KK3N0cnVjdCBpMzg3X2hhcmRf
c3RydWN0IHsNCisJdW5zaWduZWQgc2hvcnQgY3dkOw0KKwl1bnNpZ25lZCBz
aG9ydCBzd2Q7DQorCXVuc2lnbmVkIGNoYXIgdHdkOw0KKwl1bnNpZ25lZCBj
aGFyIF9fcmVzZXJ2ZWRfMDE7DQorCXVuc2lnbmVkIHNob3J0IGZvcGNvZGU7
DQorCWxvbmcJZmlwOw0KKwlsb25nCWZjczsNCisJbG9uZwlmb287DQorCWxv
bmcJZm9zOw0KKwlsb25nIF9fcmVzZXJ2ZWRfMDIsIF9fcmVzZXJ2ZWRfMDM7
DQorCWxvbmcJc3Rfc3BhY2VbMzJdOwkvKiA4KjE2IGJ5dGVzIGZvciBlYWNo
IEZQL01NWC1yZWcgPSAxMjggYnl0ZXMgKi8NCisJbG9uZyBfX3Jlc2VydmVk
XzA0IFsxMSo4XTsgLyogMjIgY2FjaGVsaW5lcyBmb3IgTU1YMiByZWdpc3Rl
cnMgKi8NCit9IF9fYXR0cmlidXRlX18gKChhbGlnbmVkICgxNikpKTsNCisN
CisvKg0KKyAqIHRhZyB3b3JkIGNvbnZlcnNpb24gKHRoYW5rcyB0byBHYWJy
aWVsIFBhdWJlcnQgZm9yIG5vdGljaW5nIHRoZQ0KKyAqIHN1YnRsZSBmb3Jt
YXQgZGlmZmVyZW5jZSBhbmQgaW1wbGVtZW50aW5nIHRoZXNlIGZ1bmN0aW9u
cykNCisgKg0KKyAqIHRoZXJlIGFyZSBzZXZlcmFsIGVycmF0YXMgd3J0LiB0
aGUgdGFnIHdvcmQgaW4gdGhlIGkzODcsIHRodXMNCisgKiBhbnkgc29mdHdh
cmUgcmVseWluZyBvbiBpdCdzIHZhbHVlIGlzIHF1ZXN0aW9uYWJsZSwgYnV0
IHdlDQorICogZGVmaW5pdGVseSB3YW50IHRvIGJlIGFzIGNsb3NlIGFzIHBv
c3NpYmxlLg0KKyAqLw0KK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgc2hvcnQg
ZnB1dGFnX0tOSXRvMzg3KHVuc2lnbmVkIGNoYXIgdGIpIHsNCisJdW5zaWdu
ZWQgc2hvcnQgdHcgPSB0YjsNCisJdHcgPSAoKHR3PDw0KSB8IHR3KSAmMHgw
ZjBmOyAvKiB6enp6NzY1NHp6enozMjEwICovDQorCXR3ID0gKCh0dzw8Mikg
fCB0dykgJjB4MzMzMzsgLyogeno3Nnp6NTR6ejMyenoxMCAqLw0KKwl0dyA9
ICgodHc8PDEpIHwgdHcpICYweDU1NTU7IC8qIHo3ejZ6NXo0ejN6MnoxejAg
Ki8NCisJcmV0dXJuIH4odHcqMyk7DQorfQ0KKw0KK3N0YXRpYyBpbmxpbmUg
dW5zaWduZWQgY2hhciBmcHV0YWdfMzg3dG9LTkkodW5zaWduZWQgc2hvcnQg
dHcpIHsNCisJdHcgPSB+dHc7DQorCXR3ID0gKHR3IHwgKHR3Pj4xKSkgJiAw
eDU1NTU7IC8qIHo3ejZ6NXo0ejN6MnoxejAgKi8NCisJdHcgPSAodHcgfCAo
dHc+PjEpKSAmIDB4MzMzMzsgLyogeno3Nnp6NTR6ejMyenoxMCAqLw0KKwl0
dyA9ICh0dyB8ICh0dz4+MykpICYgMHgwZjBmOyAvKiB6enp6NzY1NHp6enoz
MjEwICovDQorCXJldHVybiAodHd8KHR3Pj40KSkgJiAweDAwZmY7IC8qIHp6
enp6enp6NzY1NDMyMTAgKi8NCit9DQorDQorI2RlZmluZSBpMzg3X3NldF9j
d2QoeCx2KSBkbyB7ICh4KS5jd2QgPSAoc2hvcnQpKHYpOyB9IHdoaWxlICgw
KQ0KKyNkZWZpbmUgaTM4N19zZXRfc3dkKHgsdikgZG8geyAoeCkuc3dkID0g
KHNob3J0KSh2KTsgfSB3aGlsZSAoMCkNCisjZGVmaW5lIGkzODdfc2V0X3R3
ZCh4LHYpIGRvIHsgKHgpLnR3ZCA9IGZwdXRhZ18zODd0b0tOSSh2KTsgfSB3
aGlsZSAoMCkNCisNCisvKg0KKyAqIEdBUyBpcyBub3QgcmVhZHkgeWV0LCBz
byB3ZSBlbmNvZGUgdGhlIEZYU0FWRS9GWFJTVE9SDQorICogb3Bjb2RlcyBk
aXJlY3RseToNCisgKi8NCisjZGVmaW5lIGkzODdfc2F2ZV9oYXJkKHgpIFwN
CitkbyB7IF9fYXNtX18gX192b2xhdGlsZV9fKCIuYnl0ZSAweDBmLCAweGFl
LCAweDA2IjogOiJTIiAoJih4KSkpOyB9IHdoaWxlICgwKQ0KKw0KKyNkZWZp
bmUgaTM4N19yZXN0b3JlX2hhcmQoeCkgXA0KK2RvIHsgX19hc21fXyBfX3Zv
bGF0aWxlX18oIi5ieXRlIDB4MGYsIDB4YWUsIDB4NGYsIDB4MDAiOiA6IkQi
ICgmKHgpKSk7IH0gd2hpbGUgKDApDQorDQorI2VuZGlmDQorDQorZXh0ZXJu
IGludCBpMzg3X2hhcmRfdG9fdXNlciAoIHN0cnVjdCB1c2VyX2kzODdfc3Ry
dWN0ICogdXNlciwNCisJCQlzdHJ1Y3QgaTM4N19oYXJkX3N0cnVjdCAqIGhh
cmQpOw0KK2V4dGVybiBpbnQgaTM4N191c2VyX3RvX2hhcmQgKHN0cnVjdCBp
Mzg3X2hhcmRfc3RydWN0ICogaGFyZCwNCisJCQlzdHJ1Y3QgdXNlcl9pMzg3
X3N0cnVjdCAqIHVzZXIpOw0KKw0KIHN0cnVjdCBpMzg3X3NvZnRfc3RydWN0
IHsNCiAJbG9uZwljd2Q7DQogCWxvbmcJc3dkOw0KQEAgLTI4Nyw3ICs0MzYs
NyBAQA0KICAqIEZQVSBsYXp5IHN0YXRlIHNhdmUgaGFuZGxpbmcuLg0KICAq
Lw0KICNkZWZpbmUgc2F2ZV9mcHUodHNrKSBkbyB7IFwNCi0JYXNtIHZvbGF0
aWxlKCJmbnNhdmUgJTBcblx0ZndhaXQiOiI9bSIgKHRzay0+dHNzLmkzODcp
KTsgXA0KKwlpMzg3X3NhdmVfaGFyZCh0c2stPnRzcy5pMzg3KTsgXA0KIAl0
c2stPmZsYWdzICY9IH5QRl9VU0VERlBVOyBcDQogCXN0dHMoKTsgXA0KIH0g
d2hpbGUgKDApDQotLS0gbGludXgvYXJjaC9pMzg2L21tL2luaXQuYy5vcmln
CVR1ZSBKYW4gMjYgMTA6NDc6MTYgMTk5OQ0KKysrIGxpbnV4L2FyY2gvaTM4
Ni9tbS9pbml0LmMJRnJpIEFwciAxNiAxMDoyODoxOSAxOTk5DQpAQCAtMTgy
LDM0ICsxODIsNiBAQA0KIGV4dGVybiBjaGFyIF90ZXh0LCBfZXRleHQsIF9l
ZGF0YSwgX19ic3Nfc3RhcnQsIF9lbmQ7DQogZXh0ZXJuIGNoYXIgX19pbml0
X2JlZ2luLCBfX2luaXRfZW5kOw0KIA0KLSNkZWZpbmUgWDg2X0NSNF9WTUUJ
CTB4MDAwMQkJLyogZW5hYmxlIHZtODYgZXh0ZW5zaW9ucyAqLw0KLSNkZWZp
bmUgWDg2X0NSNF9QVkkJCTB4MDAwMgkJLyogdmlydHVhbCBpbnRlcnJ1cHRz
IGZsYWcgZW5hYmxlICovDQotI2RlZmluZSBYODZfQ1I0X1RTRAkJMHgwMDA0
CQkvKiBkaXNhYmxlIHRpbWUgc3RhbXAgYXQgaXBsIDMgKi8NCi0jZGVmaW5l
IFg4Nl9DUjRfREUJCTB4MDAwOAkJLyogZW5hYmxlIGRlYnVnZ2luZyBleHRl
bnNpb25zICovDQotI2RlZmluZSBYODZfQ1I0X1BTRQkJMHgwMDEwCQkvKiBl
bmFibGUgcGFnZSBzaXplIGV4dGVuc2lvbnMgKi8NCi0jZGVmaW5lIFg4Nl9D
UjRfUEFFCQkweDAwMjAJCS8qIGVuYWJsZSBwaHlzaWNhbCBhZGRyZXNzIGV4
dGVuc2lvbnMgKi8NCi0jZGVmaW5lIFg4Nl9DUjRfTUNFCQkweDAwNDAJCS8q
IE1hY2hpbmUgY2hlY2sgZW5hYmxlICovDQotI2RlZmluZSBYODZfQ1I0X1BH
RQkJMHgwMDgwCQkvKiBlbmFibGUgZ2xvYmFsIHBhZ2VzICovDQotI2RlZmlu
ZSBYODZfQ1I0X1BDRQkJMHgwMTAwCQkvKiBlbmFibGUgcGVyZm9ybWFuY2Ug
Y291bnRlcnMgYXQgaXBsIDMgKi8NCi0NCi0vKg0KLSAqIFNhdmUgdGhlIGNy
NCBmZWF0dXJlIHNldCB3ZSdyZSB1c2luZyAoaWUNCi0gKiBQZW50aXVtIDRN
QiBlbmFibGUgYW5kIFBQcm8gR2xvYmFsIHBhZ2UNCi0gKiBlbmFibGUpLCBz
byB0aGF0IGFueSBDUFUncyB0aGF0IGJvb3QgdXANCi0gKiBhZnRlciB1cyBj
YW4gZ2V0IHRoZSBjb3JyZWN0IGZsYWdzLg0KLSAqLw0KLXVuc2lnbmVkIGxv
bmcgbW11X2NyNF9mZWF0dXJlcyBfX2luaXRkYXRhID0gMDsNCi0NCi1zdGF0
aWMgaW5saW5lIHZvaWQgc2V0X2luX2NyNCh1bnNpZ25lZCBsb25nIG1hc2sp
DQotew0KLQltbXVfY3I0X2ZlYXR1cmVzIHw9IG1hc2s7DQotCV9fYXNtX18o
Im1vdmwgJSVjcjQsJSVlYXhcblx0Ig0KLQkJIm9ybCAlMCwlJWVheFxuXHQi
DQotCQkibW92bCAlJWVheCwlJWNyNFxuIg0KLQkJOiA6ICJpcmciIChtYXNr
KQ0KLQkJOiJheCIpOw0KLX0NCi0NCiAvKg0KICAqIGFsbG9jYXRlIHBhZ2Ug
dGFibGUocykgZm9yIGNvbXBpbGUtdGltZSBmaXhlZCBtYXBwaW5ncw0KICAq
Lw0KLS0tIGxpbnV4L2FyY2gvaTM4Ni9rZXJuZWwvcHJvY2Vzcy5jLm9yaWcJ
VHVlIEFwciAgNiAxNjozNTowNyAxOTk5DQorKysgbGludXgvYXJjaC9pMzg2
L2tlcm5lbC9wcm9jZXNzLmMJRnJpIEFwciAxNiAxMzoxNTo0MyAxOTk5DQpA
QCAtNTgwLDYgKzU4MCwxNjggQEANCiB9DQogDQogLyoNCisgKiBGUFUgc3Rh
dGUgaGFuZGxpbmcgZnVuY3Rpb25zDQorICovDQorDQorI2lmbmRlZiBDT05G
SUdfWDg2X0ZYDQorDQoraW50IGkzODdfaGFyZF90b191c2VyICggc3RydWN0
IHVzZXJfaTM4N19zdHJ1Y3QgKiB1c2VyLA0KKwkJCXN0cnVjdCBpMzg3X2hh
cmRfc3RydWN0ICogaGFyZCkNCit7DQorCWludCBlcnI7DQorDQorCWVyciA9
IGNvcHlfdG9fdXNlcigodm9pZCAqKSh1c2VyKSwgKGhhcmQpLA0KKwkJCXNp
emVvZihzdHJ1Y3QgdXNlcl9pMzg3X3N0cnVjdCkpOw0KKwlyZXR1cm4gZXJy
Ow0KK30NCisNCitpbnQgaTM4N191c2VyX3RvX2hhcmQgKHN0cnVjdCBpMzg3
X2hhcmRfc3RydWN0ICogaGFyZCwNCisgICAgICAgICAgICAgICAgICAgICAg
ICBzdHJ1Y3QgdXNlcl9pMzg3X3N0cnVjdCAqIHVzZXIpDQorew0KKwlpbnQg
ZXJyOw0KKw0KKwllcnIgPSBjb3B5X2Zyb21fdXNlcigoaGFyZCksICh2b2lk
ICopKHVzZXIpLA0KKwkJCXNpemVvZihzdHJ1Y3QgdXNlcl9pMzg3X3N0cnVj
dCkpOw0KKwlyZXR1cm4gZXJyOw0KKw0KK30NCisNCisjZWxzZQ0KKw0KKy8q
DQorICogU2xvd2VyIGJ1dCBtb3JlIGNvcnJlY3QgY29udmVyc2lvbiBvZiBG
UCBmb3JtYXRzLg0KKyAqLw0KKyNkZWZpbmUgSEFSRFdBUkVfQ09OVkVSU0lP
TiAwDQorDQoraW50IGkzODdfaGFyZF90b191c2VyICggc3RydWN0IHVzZXJf
aTM4N19zdHJ1Y3QgKiB1c2VyLA0KKwkJCQlzdHJ1Y3QgaTM4N19oYXJkX3N0
cnVjdCAqIGhhcmQpDQorew0KKyNpZiBIQVJEV0FSRV9DT05WRVJTSU9ODQor
CWludCBlcnI7DQorCXN0cnVjdCBpMzg3X2hhcmRfc3RydWN0ICp0bXAxOw0K
KwlzdHJ1Y3QgdXNlcl9pMzg3X3N0cnVjdCB0bXAyOw0KKw0KKwkvKg0KKwkg
KiBoYXMgdG8gYmUgMTYtYnl0ZSBhbGlnbmVkLg0KKwkgKi8NCisJdG1wMSA9
IChzdHJ1Y3QgaTM4N19oYXJkX3N0cnVjdCAqKQ0KKwkJCWttYWxsb2Moc2l6
ZW9mKHN0cnVjdCBpMzg3X2hhcmRfc3RydWN0KSwgR0ZQX0tFUk5FTCk7DQor
CWlmICghdG1wMSkNCisJCXJldHVybiAtRU5PTUVNOw0KKwlhc20gdm9sYXRp
bGUgKCJmeHNhdmUgKCUwKSI6OiJyIiAodG1wMSkpOw0KKwlhc20gdm9sYXRp
bGUgKCJmeHJzdG9yICglMCkiOjoiciIgKGhhcmQpKTsNCisJYXNtIHZvbGF0
aWxlICgiZnNhdmUgKCUwKSI6OiJyIiAoJnRtcDIpKTsNCisJYXNtIHZvbGF0
aWxlICgiZnhyc3RvciAoJTApIjo6InIiICh0bXAxKSk7DQorCWtmcmVlKHRt
cDEpOw0KKw0KKwllcnIgPSBjb3B5X3RvX3VzZXIoKHZvaWQgKil1c2VyLCAm
dG1wMiwNCisJCQlzaXplb2Yoc3RydWN0IHVzZXJfaTM4N19zdHJ1Y3QpKTsN
CisJcmV0dXJuIGVycjsNCisjZWxzZQ0KKwlpbnQgaSwgZXJyID0gMDsNCisJ
c2hvcnQgKnRtcCwgKnRtcDI7DQorDQorCWlmICghYWNjZXNzX29rKFZFUklG
WV9XUklURSwgdXNlciwgc2l6ZW9mKCp1c2VyKSkpDQorCQlyZXR1cm4gLUVG
QVVMVDsNCisjZGVmaW5lIFBVVCh4KSBlcnIgfD0gX19wdXRfdXNlciAoaGFy
ZC0+eCwgJnVzZXItPngpDQorCVBVVChjd2QpOw0KKwlQVVQoc3dkKTsNCisN
CisJZXJyIHw9IF9fcHV0X3VzZXIgKGZwdXRhZ19LTkl0bzM4NyhoYXJkLT50
d2QpLCAmdXNlci0+dHdkKTsNCisNCisJUFVUKGZpcCk7DQorCVBVVChmY3Mp
Ow0KKwlQVVQoZm9vKTsNCisJUFVUKGZvcyk7DQorI3VuZGVmIFBVVA0KKw0K
Kwl0bXAgPSAoc2hvcnQgKikmdXNlci0+c3Rfc3BhY2U7DQorCXRtcDIgPSAo
c2hvcnQgKikmaGFyZC0+c3Rfc3BhY2U7DQorDQorCS8qDQorCSAqIFRyYW5z
Zm9ybSB0aGUgdHdvIGxheW91dHM6DQorCSAqICh3ZSBkbyBub3QgbWl4IDMy
LWJpdCBhY2Nlc3Mgd2l0aCAxNi1iaXQgYWNjZXNzIGJlY2F1c2UNCisJICog
dGhhdHMgc3Vib3B0aW1hbCBvbiBQUHJvcykNCisJICovDQorDQorCWZvciAo
aSA9IDA7IGkgPCA4OyBpKyspIHsNCisJCWVyciB8PSBfX3B1dF91c2VyKCp0
bXAyLCB0bXApOyB0bXArKzsgdG1wMisrOw0KKwkJZXJyIHw9IF9fcHV0X3Vz
ZXIoKnRtcDIsIHRtcCk7IHRtcCsrOyB0bXAyKys7DQorCQllcnIgfD0gX19w
dXRfdXNlcigqdG1wMiwgdG1wKTsgdG1wKys7IHRtcDIrKzsNCisJCWVyciB8
PSBfX3B1dF91c2VyKCp0bXAyLCB0bXApOyB0bXArKzsgdG1wMisrOw0KKwkJ
ZXJyIHw9IF9fcHV0X3VzZXIoKnRtcDIsIHRtcCk7IHRtcCsrOyB0bXAyICs9
IDQ7DQorCX0NCisJcmV0dXJuIGVycjsNCisjZW5kaWYNCit9DQorDQoraW50
IGkzODdfdXNlcl90b19oYXJkIChzdHJ1Y3QgaTM4N19oYXJkX3N0cnVjdCAq
IGhhcmQsDQorCQkJc3RydWN0IHVzZXJfaTM4N19zdHJ1Y3QgKiB1c2VyKQ0K
K3sNCisjaWYgSEFSRFdBUkVfQ09OVkVSU0lPTg0KKwlpbnQgZXJyOw0KKwlz
dHJ1Y3QgaTM4N19oYXJkX3N0cnVjdCAqdG1wMTsNCisJc3RydWN0IHVzZXJf
aTM4N19zdHJ1Y3QgdG1wMjsNCisNCisJdG1wMSA9IChzdHJ1Y3QgaTM4N19o
YXJkX3N0cnVjdCAqKQ0KKwkJCWttYWxsb2Moc2l6ZW9mKHN0cnVjdCBpMzg3
X2hhcmRfc3RydWN0KSwgR0ZQX0tFUk5FTCk7DQorCWlmICghdG1wMSkNCisJ
CXJldHVybiAtRU5PTUVNOw0KKwllcnIgPSBjb3B5X2Zyb21fdXNlcigmdG1w
MiwgKHZvaWQgKil1c2VyLA0KKwkJCXNpemVvZihzdHJ1Y3QgdXNlcl9pMzg3
X3N0cnVjdCkpOw0KKw0KKwlhc20gdm9sYXRpbGUgKCJmeHNhdmUgKCUwKSI6
OiJyIiAodG1wMSkpOw0KKwlhc20gdm9sYXRpbGUgKCJmcnN0b3IgKCUwKSI6
OiJyIiAoJnRtcDIpKTsNCisJYXNtIHZvbGF0aWxlICgiZnhzYXZlICglMCki
OjoiciIgKGhhcmQpKTsNCisJYXNtIHZvbGF0aWxlICgiZnhyc3RvciAoJTAp
Ijo6InIiICh0bXAxKSk7DQorCWtmcmVlKHRtcDEpOw0KKw0KKwlyZXR1cm4g
ZXJyOw0KKyNlbHNlDQorCXVuc2lnbmVkIGxvbmcgdGFnOw0KKwlpbnQgaSwg
ZXJyID0gMDsNCisJc2hvcnQgKnRtcCwgKnRtcDI7DQorDQorCWlmICghYWNj
ZXNzX29rKFZFUklGWV9SRUFELCB1c2VyLCBzaXplb2YoKnVzZXIpKSkNCisJ
CXJldHVybiAtRUZBVUxUOw0KKw0KKyNkZWZpbmUgR0VUKHgpIGVyciB8PSBf
X2dldF91c2VyIChoYXJkLT54LCAmdXNlci0+eCkNCisJR0VUKGN3ZCk7DQor
CUdFVChzd2QpOw0KKw0KKwlHRVQodHdkKTsNCisJZXJyIHw9IGdldF91c2Vy
KHRhZywgJnVzZXItPnR3ZCk7DQorCWhhcmQtPnR3ZCA9IGZwdXRhZ18zODd0
b0tOSSh0YWcpOw0KKw0KKwloYXJkLT5fX3Jlc2VydmVkXzAxID0gMDsNCisJ
R0VUKGZpcCk7DQorCUdFVChmY3MpOw0KKwlHRVQoZm9vKTsNCisJR0VUKGZv
cyk7DQorCWhhcmQtPl9fcmVzZXJ2ZWRfMDIgPSBoYXJkLT5fX3Jlc2VydmVk
XzAzID0gMDsNCisjdW5kZWYgR0VUDQorDQorCXRtcDIgPSAoc2hvcnQgKikm
aGFyZC0+c3Rfc3BhY2U7DQorCXRtcCA9IChzaG9ydCAqKSZ1c2VyLT5zdF9z
cGFjZTsNCisNCisJZm9yIChpID0gMDsgaSA8IDg7IGkrKykgew0KKwkJZXJy
IHw9IF9fZ2V0X3VzZXIoKnRtcDIsIHRtcCk7IHRtcCsrOyB0bXAyKys7DQor
CQllcnIgfD0gX19nZXRfdXNlcigqdG1wMiwgdG1wKTsgdG1wKys7IHRtcDIr
KzsNCisJCWVyciB8PSBfX2dldF91c2VyKCp0bXAyLCB0bXApOyB0bXArKzsg
dG1wMisrOw0KKwkJZXJyIHw9IF9fZ2V0X3VzZXIoKnRtcDIsIHRtcCk7IHRt
cCsrOyB0bXAyKys7DQorCQllcnIgfD0gX19nZXRfdXNlcigqdG1wMiwgdG1w
KTsgdG1wKys7IHRtcDIrKzsNCisJCSp0bXAyID0gMDsgdG1wMisrOw0KKwkJ
KnRtcDIgPSAwOyB0bXAyKys7DQorCQkqdG1wMiA9IDA7IHRtcDIrKzsNCisJ
CSp0bXAyID0gMDsgdG1wMisrOw0KKwl9DQorCXJldHVybiBlcnI7DQorI2Vu
ZGlmDQorfQ0KKw0KKyNlbmRpZg0KKw0KKy8qDQogICogU2F2ZSBhIHNlZ21l
bnQuDQogICovDQogI2RlZmluZSBzYXZlc2VnbWVudChzZWcsdmFsdWUpIFwN
CkBAIC02OTAsOCArODUyLDggQEANCiAvKg0KICAqCXN3aXRjaF90byh4LHlu
KSBzaG91bGQgc3dpdGNoIHRhc2tzIGZyb20geCB0byB5Lg0KICAqDQotICog
V2UgZnNhdmUvZndhaXQgc28gdGhhdCBhbiBleGNlcHRpb24gZ29lcyBvZmYg
YXQgdGhlIHJpZ2h0IHRpbWUNCi0gKiAoYXMgYSBjYWxsIGZyb20gdGhlIGZz
YXZlIG9yIGZ3YWl0IGluIGVmZmVjdCkgcmF0aGVyIHRoYW4gdG8NCisgKiBX
ZSBmcHVfc2F2ZSBzbyB0aGF0IGFuIGV4Y2VwdGlvbiBnb2VzIG9mZiBhdCB0
aGUgcmlnaHQgdGltZQ0KKyAqIChhcyBhIGNhbGwgZnJvbSB0aGUgZipzYXZl
IG9yIGZ3YWl0IGluIGVmZmVjdCkgcmF0aGVyIHRoYW4gdG8NCiAgKiB0aGUg
d3JvbmcgcHJvY2Vzcy4gTGF6eSBGUCBzYXZpbmcgbm8gbG9uZ2VyIG1ha2Vz
IGFueSBzZW5zZQ0KICAqIHdpdGggbW9kZXJuIENQVSdzLCBhbmQgdGhpcyBz
aW1wbGlmaWVzIGEgbG90IG9mIHRoaW5ncyAoU01QDQogICogYW5kIFVQIGJl
Y29tZSB0aGUgc2FtZSkuDQotLS0gbGludXgvYXJjaC9pMzg2L2tlcm5lbC9w
dHJhY2UuYy5vcmlnCVR1ZSBBcHIgIDYgMTY6MzU6MTAgMTk5OQ0KKysrIGxp
bnV4L2FyY2gvaTM4Ni9rZXJuZWwvcHRyYWNlLmMJRnJpIEFwciAxNiAxMDoy
ODoxOSAxOTk5DQpAQCAtNjE2LDYgKzYxNiw5IEBADQogCQkgIH07DQogDQog
CQljYXNlIFBUUkFDRV9HRVRGUFJFR1M6IHsgLyogR2V0IHRoZSBjaGlsZCBG
UFUgc3RhdGUuICovDQorCQkJLyoNCisJCQkgKiB1c2VyLXNwYWNlIGV4cGVj
dHMgYW4gJ29sZC1zdHlsZScgRlBVIGR1bXAuDQorCQkJICovDQogCQkJaWYg
KCFhY2Nlc3Nfb2soVkVSSUZZX1dSSVRFLCAodW5zaWduZWQgKilkYXRhLA0K
IAkJCQkgICAgICAgc2l6ZW9mKHN0cnVjdCB1c2VyX2kzODdfc3RydWN0KSkp
DQogCQkJICB7DQpAQCAtNjI1LDE1ICs2MjgsMTcgQEANCiAJCQlyZXQgPSAw
Ow0KIAkJCWlmICggIWNoaWxkLT51c2VkX21hdGggKSB7DQogCQkJICAvKiBT
aW11bGF0ZSBhbiBlbXB0eSBGUFUuICovDQotCQkJICBjaGlsZC0+dHNzLmkz
ODcuaGFyZC5jd2QgPSAweGZmZmYwMzdmOw0KLQkJCSAgY2hpbGQtPnRzcy5p
Mzg3LmhhcmQuc3dkID0gMHhmZmZmMDAwMDsNCi0JCQkgIGNoaWxkLT50c3Mu
aTM4Ny5oYXJkLnR3ZCA9IDB4ZmZmZmZmZmY7DQorCQkJICBpMzg3X3NldF9j
d2QoY2hpbGQtPnRzcy5pMzg3LmhhcmQsIDB4MDM3Zik7DQorCQkJICBpMzg3
X3NldF9zd2QoY2hpbGQtPnRzcy5pMzg3LmhhcmQsIDB4MDAwMCk7DQorCQkJ
ICBpMzg3X3NldF90d2QoY2hpbGQtPnRzcy5pMzg3LmhhcmQsIDB4ZmZmZik7
DQogCQkJfQ0KICNpZmRlZiBDT05GSUdfTUFUSF9FTVVMQVRJT04NCiAJCQlp
ZiAoIGJvb3RfY3B1X2RhdGEuaGFyZF9tYXRoICkgew0KICNlbmRpZg0KLQkJ
CQlfX2NvcHlfdG9fdXNlcigodm9pZCAqKWRhdGEsICZjaGlsZC0+dHNzLmkz
ODcuaGFyZCwNCi0JCQkJCQlzaXplb2Yoc3RydWN0IHVzZXJfaTM4N19zdHJ1
Y3QpKTsNCisJCQkJaTM4N19oYXJkX3RvX3VzZXIoDQorCQkJCQkoc3RydWN0
IHVzZXJfaTM4N19zdHJ1Y3QgKilkYXRhLA0KKwkJCQkJJmNoaWxkLT50c3Mu
aTM4Ny5oYXJkDQorCQkJCSk7DQogI2lmZGVmIENPTkZJR19NQVRIX0VNVUxB
VElPTg0KIAkJCX0gZWxzZSB7DQogCQkJICBzYXZlX2kzODdfc29mdCgmY2hp
bGQtPnRzcy5pMzg3LnNvZnQsDQpAQCAtNjU0LDggKzY1OSwxMiBAQA0KICNp
ZmRlZiBDT05GSUdfTUFUSF9FTVVMQVRJT04NCiAJCQlpZiAoIGJvb3RfY3B1
X2RhdGEuaGFyZF9tYXRoICkgew0KICNlbmRpZg0KLQkJCSAgX19jb3B5X2Zy
b21fdXNlcigmY2hpbGQtPnRzcy5pMzg3LmhhcmQsICh2b2lkICopZGF0YSwN
Ci0JCQkJCSAgIHNpemVvZihzdHJ1Y3QgdXNlcl9pMzg3X3N0cnVjdCkpOw0K
KwkJCXsNCisJCQkJaTM4N191c2VyX3RvX2hhcmQoDQorCQkJCQkmY2hpbGQt
PnRzcy5pMzg3LmhhcmQsDQorCQkJCQkoc3RydWN0IHVzZXJfaTM4N19zdHJ1
Y3QgKilkYXRhDQorCQkJCSk7DQorCQkJfQ0KICNpZmRlZiBDT05GSUdfTUFU
SF9FTVVMQVRJT04NCiAJCQl9IGVsc2Ugew0KIAkJCSAgcmVzdG9yZV9pMzg3
X3NvZnQoJmNoaWxkLT50c3MuaTM4Ny5zb2Z0LA0KLS0tIGxpbnV4L2FyY2gv
aTM4Ni9rZXJuZWwvc2V0dXAuYy5vcmlnCVR1ZSBBcHIgIDYgMTY6MzU6MDcg
MTk5OQ0KKysrIGxpbnV4L2FyY2gvaTM4Ni9rZXJuZWwvc2V0dXAuYwlGcmkg
QXByIDE2IDEwOjI5OjIxIDE5OTkNCkBAIC00Niw2ICs0Niw3IEBADQogDQog
Y2hhciBpZ25vcmVfaXJxMTMgPSAwOwkJLyogc2V0IGlmIGV4Y2VwdGlvbiAx
NiB3b3JrcyAqLw0KIHN0cnVjdCBjcHVpbmZvX3g4NiBib290X2NwdV9kYXRh
ID0geyAwLCAwLCAwLCAwLCAtMSwgMSwgMCwgMCwgLTEgfTsNCit1bnNpZ25l
ZCBsb25nIG1tdV9jcjRfZmVhdHVyZXMgX19pbml0ZGF0YSA9IDA7DQogDQog
LyoNCiAgKiBCdXMgdHlwZXMgLi4NCkBAIC02NzksOCArNjgwLDkgQEANCiAJ
ICAgIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwgfX0sDQogCXsgWDg2X1ZFTkRP
Ul9JTlRFTCwJNiwNCiAJICB7ICJQZW50aXVtIFBybyBBLXN0ZXAiLCAiUGVu
dGl1bSBQcm8iLCBOVUxMLCAiUGVudGl1bSBJSSAoS2xhbWF0aCkiLCANCi0J
ICAgIE5VTEwsICJQZW50aXVtIElJIChEZXNjaHV0ZXMpIiwgIkNlbGVyb24g
KE1lbmRvY2lubykiLCBOVUxMLA0KLQkgICAgTlVMTCwgTlVMTCwgTlVMTCwg
TlVMTCwgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCB9fSwNCisJICAgIE5VTEws
ICJQZW50aXVtIElJIChEZXNjaHV0ZXMpIiwgIkNlbGVyb24gKE1lbmRvY2lu
bykiLA0KKwkgICAgIlBlbnRpdW0gSUlJIChLYXRtYWkpIiwgTlVMTCwgTlVM
TCwgTlVMTCwgTlVMTCwgTlVMTCwNCisJICAgIE5VTEwsIE5VTEwsIE5VTEwg
fX0sDQogCXsgWDg2X1ZFTkRPUl9BTUQsCTQsDQogCSAgeyBOVUxMLCBOVUxM
LCBOVUxMLCAiNDg2IERYLzIiLCBOVUxMLCBOVUxMLCBOVUxMLCAiNDg2IERY
LzItV0IiLA0KIAkgICAgIjQ4NiBEWC80IiwgIjQ4NiBEWC80LVdCIiwgTlVM
TCwgTlVMTCwgTlVMTCwgTlVMTCwgIkFtNXg4Ni1XVCIsDQpAQCAtOTIzLDYg
KzkyNSw3IEBADQogCQkJeDg2X2NhcF9mbGFnc1sxN10gPSAicHNlMzYiOw0K
IAkJCXg4Nl9jYXBfZmxhZ3NbMThdID0gInBzbiI7DQogCQkJeDg2X2NhcF9m
bGFnc1syNF0gPSAib3NmeHNyIjsNCisJCQl4ODZfY2FwX2ZsYWdzWzI1XSA9
ICJ4bW0iOw0KIAkJfQ0KIA0KIAkJc2VwX2J1ZyA9IGMtPng4Nl92ZW5kb3Ig
PT0gWDg2X1ZFTkRPUl9JTlRFTCAmJg0KLS0tIGxpbnV4L2FyY2gvaTM4Ni9r
ZXJuZWwvc2lnbmFsLmMub3JpZwlUdWUgRGVjIDI5IDE2OjM2OjU4IDE5OTgN
CisrKyBsaW51eC9hcmNoL2kzODYva2VybmVsL3NpZ25hbC5jCUZyaSBBcHIg
MTYgMTA6Mjg6MTkgMTk5OQ0KQEAgLTE1Myw5ICsxNTMsMTYgQEANCiANCiBz
dGF0aWMgaW5saW5lIGludCByZXN0b3JlX2kzODdfaGFyZChzdHJ1Y3QgX2Zw
c3RhdGUgKmJ1ZikNCiB7DQorCWludCBlcnIgPSAwOw0KIAlzdHJ1Y3QgdGFz
a19zdHJ1Y3QgKnRzayA9IGN1cnJlbnQ7DQogCWNsZWFyX2ZwdSh0c2spOw0K
LQlyZXR1cm4gX19jb3B5X2Zyb21fdXNlcigmdHNrLT50c3MuaTM4Ny5oYXJk
LCBidWYsIHNpemVvZigqYnVmKSk7DQorDQorI2lmZGVmIENPTkZJR19NQVRI
X0VNVUxBVElPTg0KKwllcnIgPSBnZXRfdXNlcih0c2stPnRzcy5pMzg3Lmhh
cmQuc3RhdHVzLCAmYnVmLT5zdGF0dXMpOw0KKyNlbmRpZg0KKwllcnIgfD0g
aTM4N191c2VyX3RvX2hhcmQoJnRzay0+dHNzLmkzODcuaGFyZCwNCisJCQkJ
KHN0cnVjdCB1c2VyX2kzODdfc3RydWN0ICopYnVmKTsNCisJcmV0dXJuIGVy
cjsNCiB9DQogDQogc3RhdGljIGlubGluZSBpbnQgcmVzdG9yZV9pMzg3KHN0
cnVjdCBfZnBzdGF0ZSAqYnVmKQ0KQEAgLTMwNSwxMSArMzEyLDE2IEBADQog
DQogc3RhdGljIGlubGluZSBpbnQgc2F2ZV9pMzg3X2hhcmQoc3RydWN0IF9m
cHN0YXRlICogYnVmKQ0KIHsNCisJaW50IGVyciA9IDA7DQogCXN0cnVjdCB0
YXNrX3N0cnVjdCAqdHNrID0gY3VycmVudDsNCiANCiAJdW5sYXp5X2ZwdSh0
c2spOw0KLQl0c2stPnRzcy5pMzg3LmhhcmQuc3RhdHVzID0gdHNrLT50c3Mu
aTM4Ny5oYXJkLnN3ZDsNCi0JaWYgKF9fY29weV90b191c2VyKGJ1ZiwgJnRz
ay0+dHNzLmkzODcuaGFyZCwgc2l6ZW9mKCpidWYpKSkNCisjaWZkZWYgQ09O
RklHX01BVEhfRU1VTEFUSU9ODQorCWVyciA9IHB1dF91c2VyKHRzay0+dHNz
LmkzODcuaGFyZC5zdGF0dXMsICZidWYtPnN0YXR1cyk7DQorI2VuZGlmDQor
CWVyciB8PSBpMzg3X2hhcmRfdG9fdXNlcigoc3RydWN0IHVzZXJfaTM4N19z
dHJ1Y3QgKilidWYsDQorCQkJJnRzay0+dHNzLmkzODcuaGFyZCk7DQorCWlm
IChlcnIpDQogCQlyZXR1cm4gLTE7DQogCXJldHVybiAxOw0KIH0NCi0tLSBs
aW51eC9hcmNoL2kzODYva2VybmVsL3RyYXBzLmMub3JpZwlUdWUgTWFyICA5
IDExOjAzOjM5IDE5OTkNCisrKyBsaW51eC9hcmNoL2kzODYva2VybmVsL3Ry
YXBzLmMJRnJpIEFwciAxNiAxMDoyODoxOSAxOTk5DQpAQCAtNDUyLDE3ICs0
NTIsMTYgQEANCiBhc21saW5rYWdlIHZvaWQgbWF0aF9zdGF0ZV9yZXN0b3Jl
KHN0cnVjdCBwdF9yZWdzIHJlZ3MpDQogew0KIAlfX2FzbV9fIF9fdm9sYXRp
bGVfXygiY2x0cyIpOwkJLyogQWxsb3cgbWF0aHMgb3BzIChvciB3ZSByZWN1
cnNlKSAqLw0KLQlpZihjdXJyZW50LT51c2VkX21hdGgpDQotCQlfX2FzbV9f
KCJmcnN0b3IgJTAiOiA6Im0iIChjdXJyZW50LT50c3MuaTM4NykpOw0KLQll
bHNlDQotCXsNCisJaWYoY3VycmVudC0+dXNlZF9tYXRoKSB7DQorCQlpMzg3
X3Jlc3RvcmVfaGFyZChjdXJyZW50LT50c3MuaTM4Nyk7DQorCX0gZWxzZSB7
DQogCQkvKg0KIAkJICoJT3VyIGZpcnN0IEZQVSB1c2FnZSwgY2xlYW4gdGhl
IGNoaXAuDQogCQkgKi8NCiAJCV9fYXNtX18oImZuaW5pdCIpOw0KIAkJY3Vy
cmVudC0+dXNlZF9tYXRoID0gMTsNCiAJfQ0KLQljdXJyZW50LT5mbGFnc3w9
UEZfVVNFREZQVTsJCS8qIFNvIHdlIGZuc2F2ZSBvbiBzd2l0Y2hfdG8oKSAq
Lw0KKwljdXJyZW50LT5mbGFnc3w9UEZfVVNFREZQVTsJLyogU28gd2UgZnB1
X3NhdmUgb24gc3dpdGNoX3RvKCkgKi8NCiB9DQogDQogI2lmbmRlZiBDT05G
SUdfTUFUSF9FTVVMQVRJT04NCi0tLSBsaW51eC9hcmNoL2kzODYva2VybmVs
L3NtcC5jLm9yaWcJVHVlIEFwciAgNiAxNjozNTowNyAxOTk5DQorKysgbGlu
dXgvYXJjaC9pMzg2L2tlcm5lbC9zbXAuYwlGcmkgQXByIDE2IDEwOjI4OjE5
IDE5OTkNCkBAIC04ODEsNiArODgxLDcgQEANCiAgKi8NCiBpbnQgX19pbml0
IHN0YXJ0X3NlY29uZGFyeSh2b2lkICp1bnVzZWQpDQogew0KKwlkaXNhYmxl
X3NlcmlhbF9ucigpOw0KIAkvKg0KIAkgKiBEb250IHB1dCBhbnl0aGluZyBi
ZWZvcmUgc21wX2NhbGxpbigpLCBTTVANCiAJICogYm9vdGluZyBpcyB0b28g
ZnJhZ2lsZSB0aGF0IHdlIHdhbnQgdG8gbGltaXQgdGhlDQotLS0gbGludXgv
YXJjaC9pMzg2L01ha2VmaWxlLm9yaWcJRnJpIEphbiAgOCAxNDozMTozMCAx
OTk5DQorKysgbGludXgvYXJjaC9pMzg2L01ha2VmaWxlCUZyaSBBcHIgMTYg
MTA6Mjg6MTkgMTk5OQ0KQEAgLTQzLDYgKzQzLDEwIEBADQogQ0ZMQUdTIDo9
ICQoQ0ZMQUdTKSAtbTQ4NiAtbWFsaWduLWxvb3BzPTIgLW1hbGlnbi1qdW1w
cz0yIC1tYWxpZ24tZnVuY3Rpb25zPTIgLURDUFU9Njg2DQogZW5kaWYNCiAN
CitpZmRlZiBDT05GSUdfTTY4NkZYDQorQ0ZMQUdTIDo9ICQoQ0ZMQUdTKSAt
bTQ4NiAtbWFsaWduLWxvb3BzPTAgLW1hbGlnbi1qdW1wcz0wIC1tYWxpZ24t
ZnVuY3Rpb25zPTAgLURDUFU9Njg2DQorZW5kaWYNCisNCiBIRUFEIDo9IGFy
Y2gvaTM4Ni9rZXJuZWwvaGVhZC5vIGFyY2gvaTM4Ni9rZXJuZWwvaW5pdF90
YXNrLm8NCiANCiBTVUJESVJTIDo9ICQoU1VCRElSUykgYXJjaC9pMzg2L2tl
cm5lbCBhcmNoL2kzODYvbW0gYXJjaC9pMzg2L2xpYg0KLS0tIGxpbnV4L2Fy
Y2gvaTM4Ni9jb25maWcuaW4ub3JpZwlUdWUgTWFyICA5IDExOjAzOjM5IDE5
OTkNCisrKyBsaW51eC9hcmNoL2kzODYvY29uZmlnLmluCUZyaSBBcHIgMTYg
MTA6Mjg6MTkgMTk5OQ0KQEAgLTE2LDcgKzE2LDggQEANCiAJIDQ4Ni9DeDQ4
NgkJQ09ORklHX000ODYJXA0KIAkgNTg2L0s1LzV4ODYvNng4NglDT05GSUdf
TTU4NglcDQogCSBQZW50aXVtL0s2L1RTQwkJQ09ORklHX001ODZUU0MJXA0K
LQkgUFByby82eDg2TVgJCUNPTkZJR19NNjg2IiBQUHJvDQorCSBQUHJvLzZ4
ODZNWC9QSUkJQ09ORklHX002ODYgXA0KKwkgUElJSS9YZW9uL0Rlc2NodXRl
cwlDT05GSUdfTTY4NkZYIiBQSUlJDQogIw0KICMgRGVmaW5lIGltcGxpZWQg
b3B0aW9ucyBmcm9tIHRoZSBDUFUgc2VsZWN0aW9uIGhlcmUNCiAjDQpAQCAt
MjYsMTQgKzI3LDIwIEBADQogICBkZWZpbmVfYm9vbCBDT05GSUdfWDg2X0JT
V0FQIHkNCiAgIGRlZmluZV9ib29sIENPTkZJR19YODZfUE9QQURfT0sgeQ0K
IGZpDQotaWYgWyAiJENPTkZJR19NNjg2IiA9ICJ5IiAtbyAiJENPTkZJR19N
NTg2VFNDIiA9ICJ5IiBdOyB0aGVuDQoraWYgWyAiJENPTkZJR19NNjg2Rlgi
ID0gInkiIC1vICIkQ09ORklHX002ODYiID0gInkiIFwNCisJCQkJLW8gIiRD
T05GSUdfTTU4NlRTQyIgPSAieSIgXTsgdGhlbg0KICAgZGVmaW5lX2Jvb2wg
Q09ORklHX1g4Nl9UU0MgeQ0KIGZpDQotaWYgWyAiJENPTkZJR19NNjg2IiA9
ICJ5IiBdOyB0aGVuDQoraWYgWyAiJENPTkZJR19NNjg2RlgiID0gInkiIC1v
ICIkQ09ORklHX002ODYiID0gInkiIF07IHRoZW4NCiAgIGRlZmluZV9ib29s
IENPTkZJR19YODZfR09PRF9BUElDIHkNCiBmaQ0KK2lmIFsgIiRDT05GSUdf
TTY4NkZYIiA9ICJ5IiBdOyB0aGVuDQorICBkZWZpbmVfYm9vbCBDT05GSUdf
WDg2X0ZYIHkNCitmaQ0KIA0KLWJvb2wgJ01hdGggZW11bGF0aW9uJyBDT05G
SUdfTUFUSF9FTVVMQVRJT04NCitpZiBbICIkQ09ORklHX1g4Nl9GWCIgIT0g
InkiIF07IHRoZW4NCisgIGJvb2wgJ01hdGggZW11bGF0aW9uJyBDT05GSUdf
TUFUSF9FTVVMQVRJT04NCitmaQ0KIGJvb2wgJ01UUlIgKE1lbW9yeSBUeXBl
IFJhbmdlIFJlZ2lzdGVyKSBzdXBwb3J0JyBDT05GSUdfTVRSUg0KIGJvb2wg
J1N5bW1ldHJpYyBtdWx0aS1wcm9jZXNzaW5nIHN1cHBvcnQnIENPTkZJR19T
TVANCiBlbmRtZW51DQotLS0gbGludXgvRG9jdW1lbnRhdGlvbi9Db25maWd1
cmUuaGVscC5vcmlnCVR1ZSBBcHIgIDYgMTY6MzU6MTAgMTk5OQ0KKysrIGxp
bnV4L0RvY3VtZW50YXRpb24vQ29uZmlndXJlLmhlbHAJRnJpIEFwciAxNiAx
MDoyODoxOSAxOTk5DQpAQCAtMTU4OSwxMCArMTU4OSwxMCBAQA0KICAgYWxs
IHg4NiBDUFUgdHlwZXMgKGFsYmVpdCBub3Qgb3B0aW1hbGx5IGZhc3QpLCB5
b3UgY2FuIHNwZWNpZnkNCiAgICIzODYiIGhlcmUuDQogDQotICBJZiB5b3Ug
c3BlY2lmeSBvbmUgb2YgIjQ4NiIgb3IgIjU4NiIgb3IgIlBlbnRpdW0iIG9y
ICJQUHJvIiwgdGhlbg0KLSAgdGhlIGtlcm5lbCB3aWxsIG5vdCBuZWNlc3Nh
cmlseSBydW4gb24gZWFybGllciBhcmNoaXRlY3R1cmVzIChlLmcuIGENCi0g
IFBlbnRpdW0gb3B0aW1pemVkIGtlcm5lbCB3aWxsIHJ1biBvbiBhIFBQcm8s
IGJ1dCBub3QgbmVjZXNzYXJpbHkgb24NCi0gIGEgaTQ4NikuDQorICBJZiB5
b3Ugc3BlY2lmeSBvbmUgb2YgIjQ4NiIgb3IgIjU4NiIgb3IgIlBlbnRpdW0i
IG9yICJQUHJvIiBvciAiUElJSSIsDQorICB0aGVuIHRoZSBrZXJuZWwgd2ls
bCBub3QgbmVjZXNzYXJpbHkgcnVuIG9uIGVhcmxpZXIgYXJjaGl0ZWN0dXJl
cyANCisgIChlLmcuIGEgUGVudGl1bSBvcHRpbWl6ZWQga2VybmVsIHdpbGwg
cnVuIG9uIGEgUFBybywgYnV0IG5vdCBuZWNlc3NhcmlseQ0KKyAgb24gYSBp
NDg2KS4NCiANCiAgIEhlcmUgYXJlIHRoZSBzZXR0aW5ncyByZWNvbW1lbmRl
ZCBmb3IgZ3JlYXRlc3Qgc3BlZWQ6DQogICAgLSAiMzg2IiBmb3IgdGhlIEFN
RC9DeXJpeC9JbnRlbCAzODZEWC9EWEwvU0wvU0xDL1NYLCBDeXJpeC9USQ0K
QEAgLTE2MDYsNiArMTYwNiw5IEBADQogICAgICBLNi0zRC4NCiAgICAtICJQ
UHJvIiBmb3IgdGhlIEN5cml4L0lCTS9OYXRpb25hbCBTZW1pY29uZHVjdG9y
IDZ4ODZNWCwgTUlJIGFuZA0KICAgICAgSW50ZWwgUGVudGl1bSBJSS9QZW50
aXVtIFByby4NCisgICAtICJQSUlJL1hlb24vRGVzY2h1dGVzIiBmb3IgdGhl
IFBJSUkgKEthdG1haSksIFhlb24gYW5kIGxhdGVyIFBJSXMNCisgICAgIHdp
dGggdGhlIERlc2NodXRlcyBvciBNZW5kb2Npbm8gY29yZS4gWW91IGhhdmUg
dG8gY2hvc2UgdGhpcyBmb3INCisgICAgIE1NWDIgc3VwcG9ydC4NCiANCiAg
IElmIHlvdSBkb24ndCBrbm93IHdoYXQgdG8gZG8sIGNob29zZSAiMzg2Ii4N
CiANCg==
---1247997369-340642063-924266095=:20109--

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/