[PATCH] BadRAM for 2.5.73-mm2

Steven Newbury (s_j_newbury@yahoo.co.uk)
Wed, 2 Jul 2003 04:18:15 +0100 (BST)


This is a MIME-formatted message. If you see this text it means that your
E-mail software does not support MIME-formatted messages.

--=_courier-15146-1057115966-0001-2
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 7bit
Content-Id:
Content-Disposition: inline
X-Mime-Autoconverted: from 8bit to 7bit by courier 0.39

Second attempt. Yahoo!Mail seems to have currupted the patch previously... :-/

I have ported the BadRAM patch to 2.5.73-mm2.

It will probably apply cleanly to 2.5.73 as well but I haven't checked it
yet...

I am running it now, it seems to work for me.

It is based it on
http://rick.vanrein.org/linux/badram/software/BadRAM-2.4.20.1.patch

=====
Steve

__________________________________________________
Yahoo! Plus - For a better Internet experience
http://uk.promotions.yahoo.com/yplus/yoffer.html
--=_courier-15146-1057115966-0001-2
Content-Type: application/octet-stream; name="BadRAM-2.5.73-mm2.diff"
Content-Transfer-Encoding: base64
Content-Description: BadRAM-2.5.73-mm2.diff
Content-Disposition: attachment; filename="BadRAM-2.5.73-mm2.diff"

ZGlmZiAtdXJOIGxpbnV4LTIuNS43My1tbTIvQ1JFRElUUyBsaW51eC0yLjUv
Q1JFRElUUwotLS0gbGludXgtMi41LjczLW1tMi9DUkVESVRTCTIwMDMtMDYt
MTcgMDU6MjA6MDcuMDAwMDAwMDAwICswMTAwCisrKyBsaW51eC0yLjUvQ1JF
RElUUwkyMDAzLTA3LTAyIDAxOjU4OjUyLjE0NjE5Nzk3MCArMDEwMApAQCAt
MjM2NSw2ICsyMzY1LDEyIEBACiBTOiA1NTEyNyBNYWluegogUzogR2VybWFu
eQogCitOOiBTdGV2ZW4gTmV3YnVyeQorRTogc19qX25ld2J1cnlAeWFob28u
Y28udWsKK0Q6IEZvcndhcmQgcG9ydGVkIEJhZFJBTSBwYXRjaCB0byAyLjUu
NzMgZnJvbSAyLjQuMjAKK1M6IERlcmJ5CitTOiBVbml0ZWQgS2luZ2RvbQor
CiBOOiBEYXZpZCBDLiBOaWVtaQogRTogbmllbWlAdHV4Lm9yZwogVzogaHR0
cDovL3d3dy50dXgub3JnL35uaWVtaS8KQEAgLTI2MDEsNiArMjYwNywxNCBA
QAogUzogTWFsdmVybiwgUGVubnN5bHZhbmlhIDE5MzU1CiBTOiBVU0EKIAor
TjogUmljayB2YW4gUmVpbgorRTogdmFucmVpbkBjcy51dHdlbnRlLm5sCitX
OiBodHRwOi8vd3d3LmNzLnV0d2VudGUubmwvfnZhbnJlaW4KK0Q6IE1lbW9y
eSwgdGhlIEJhZFJBTSBzdWJzeXN0ZW0gZGVhbGluZyB3aXRoIHN0YXRpY2Fs
bHkgY2hhbGxhbmdlZCBSQU0gbW9kdWxlcy4KK1M6IEJpbm5lbmVzIDY3CitT
OiA5NDA3IENYIEFzc2VuCitTOiBUaGUgTmV0aGVybGFuZHMKKwogTjogU3Rl
ZmFuIFJlaW5hdWVyCiBFOiBzdGVwYW5AbGludXguZGUKIFc6IGh0dHA6Ly93
d3cuZnJlaWJ1cmcubGludXguZGUvfnN0ZXBhbi8KQEAgLTI4MTksNiArMjgz
MywxMyBAQAogRToKIEQ6IE1hY2ludG9zaCBJREUgRHJpdmVyCiAKK046IE5p
Y28gU2NobW9pZ2wKK0U6IG5pY29Ad3JpdGVtYWlsLmNvbQorVzogaHR0cDov
L3dlYnJ1bS51bmktbWFubmhlaW0uZGUvbWF0aC9zY2htb2lnbC9saW51eC8K
K0Q6IE1pZ3JhdGlvbiBvZiBCYWRSQU0gcGF0Y2ggdG8gMi40LjQgc2VyaWVz
ICh3aXRoIFJpY2sgdmFuIFJlaW4pCitTOiBNYW5uaGVpbSwgQlcsIEdlcm1h
bnkKK1A6IDIwNDcvMzhGQzlFMDMgIDVEIERCIDA5IEU0IDNGIEYzIENEIDA5
IDc1IDU5IC0gMTEgMTcgOUMgMDMgNDYgRTMgMzggRkMgOUUgMDMKKwogTjog
UGV0ZXIgRGUgU2NocmlqdmVyCiBFOiBzdHVkMTFAY2M0Lmt1bGV1dmVuLmFj
LmJlCiBEOiBNaXRzdW1pIENELVJPTSBkcml2ZXIgcGF0Y2hlcyBNYXJjaCB2
ZXJzaW9uCmRpZmYgLXVyTiBsaW51eC0yLjUuNzMtbW0yL0RvY3VtZW50YXRp
b24vYmFkcmFtLnR4dCBsaW51eC0yLjUvRG9jdW1lbnRhdGlvbi9iYWRyYW0u
dHh0Ci0tLSBsaW51eC0yLjUuNzMtbW0yL0RvY3VtZW50YXRpb24vYmFkcmFt
LnR4dAkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysg
bGludXgtMi41L0RvY3VtZW50YXRpb24vYmFkcmFtLnR4dAkyMDAzLTA3LTAx
IDIwOjAyOjI3LjAwMDAwMDAwMCArMDEwMApAQCAtMCwwICsxLDI2NiBAQAor
SU5GT1JNQVRJT04gT04gVVNJTkcgQkFEIFJBTSBNT0RVTEVTCis9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworSW50cm9kdWN0aW9u
CisJUkFNIGlzIGdldHRpbmcgc21hbGxlciBhbmQgc21hbGxlciwgYW5kIGFz
IGEgcmVzdWx0LCBhbHNvIG1vcmUgYW5kIG1vcmUKKwl2dWxuZXJhYmxlLiBU
aGlzIG1ha2VzIHRoZSBtYW51ZmFjdHVyaW5nIG9mIGhhcmR3YXJlIG1vcmUg
ZXhwZW5zaXZlLAorCXNpbmNlIGFuIGV4Y2Vzc2l2ZSBhbW91bnQgb2YgUkFN
IGNoaXBzIG11c3QgYmUgZGlzY2FyZGVkIG9uIGFjY291bnQgb2YKKwlhIHNp
bmdsZSBjZWxsIHRoYXQgaXMgd3JvbmcuIFNpbWlsYXJseSwgc3RhdGljIGRp
c2NoYXJnZSBtYXkgZGFtYWdlIGEKKwlSQU0gbW9kdWxlIGZvcmV2ZXIsIHdo
aWNoIGlzIHVzdWFsbHkgcmVtZWRpZWQgYnkgcmVwbGFjaW5nIGl0CisJZW50
aXJlbHkuCisKKwlUaGlzIGlzIG5vdCBuZWNlc3NhcnksIGFzIHRoZSBCYWRS
QU0gY29kZSBzaG93czogQnkgaW5mb3JtaW5nIHRoZSBMaW51eAorCWtlcm5l
bCB3aGljaCBhZGRyZXNzZXMgaW4gYSBSQU0gYXJlIGRhbWFnZWQsIHRoZSBr
ZXJuZWwgc2ltcGx5IGF2b2lkcworCWV2ZXIgYWxsb2NhdGluZyBzdWNoIGFk
ZHJlc3NlcyBidXQgbWFrZXMgYWxsIHRoZSByZXN0IGF2YWlsYWJsZS4KKwor
UmVhc29ucyBmb3IgdGhpcyBmZWF0dXJlCisJVGhlcmUgYXJlIG1hbnkgcmVh
c29ucyB3aHkgdGhpcyBrZXJuZWwgZmVhdHVyZSBpcyB1c2VmdWw6CisJLSBD
aGlwIG1hbnVmYWN0dXJlIGlzIHJlc291cmNlIGludGVuc2l2ZTsgd2FzdGUg
bGVzcyBhbmQgc2xlZXAgYmV0dGVyCisJLSBJdCdzIGFub3RoZXIgY2hhbmNl
IHRvIHByb21vdGUgTGludXggYXMgInRoZSBmbGV4aWJsZSBPUyIKKwktIFNv
bWUgbGFwdG9wcyBoYXZlIHRoZWlyIFJBTSBzb2xkZXJlZCBpbi4uLiBhbmQg
dGhlbiBpdCBmYWlscyEKKwktIEl0J3MgcGxhaW4gY29vbCA7LSkKKworUnVu
bmluZyBleGFtcGxlCisJVG8gcnVuIHRoaXMgcHJvamVjdCwgSSB3YXMgZ2l2
ZW4gdHdvIERJTU1zLCAzMiBNQiBlYWNoLiBPbmUsIHRoYXQgd2UKKwlzaGFs
bCB1c2UgYXMgYSBydW5uaW5nIGV4YW1wbGUgaW4gdGhpcyB0ZXh0LCBjb250
YWluZWQgNTEyIGZhdWx0eSBiaXRzLAorCXNwcmVhZCBvdmVyIDEvNCBvZiB0
aGUgYWRkcmVzcyByYW5nZSBpbiBhIHJlZ3VsYXIgcGF0dGVybi4gU29tZSB0
cmlja3MKKwl3aXRoIGEgUkFNIHRlc3RlciBhbmQgYSBmZXcgYmluYXJ5IGNh
bGN1bGF0aW9ucyB3ZXJlIHN1ZmZpY2llbnQgdG8KKwl3cml0ZSB0aGVzZSBm
YXVsdHMgZG93biBpbiAyIGxvbmd3b3JkIG51bWJlcnMuCisKKwlUaGUga2Vy
bmVsIHJlY29nbmlzZWQgdGhlIGNvcnJlY3QgbnVtYmVyIG9mIHBhZ2VzIHdp
dGggZmF1bHRzIGFuZCBkaWQKKwlub3QgZ2l2ZSB0aGVtIG91dCBmb3IgYWxs
b2NhdGlvbi4gVGhlIGFsbG9jYXRpb24gcm91dGluZXMgY291bGQKKwl0aGVy
ZWZvcmUgcHJvZ3Jlc3MgYXMgbm9ybWFsbHksIHdpdGhvdXQgYW55IGFkYXB0
aW9uLgorCVNvLCBJIGdhaW5lZCAzMCBNQiBvZiBESU1NIHdoaWNoIHdvdWxk
IG90aGVyd2lzZSBoYXZlIGJlZW4gdGhyb3duCisJYXdheS4gQWZ0ZXIgYm9v
dGluZyB0aGUga2VybmVsLCB0aGUga2VybmVsIGJlaGF2ZWQgZXhhY3RseSBh
cyBpdAorCWFsd2F5cyBoYWQuCisKK0luaXRpYWwgY2hlY2tzCisJSWYgeW91
IGV4cGVyaWVuY2UgUkFNIHRyb3VibGUsIGZpcnN0IHJlYWQgL3Vzci9zcmMv
bGludXgvbWVtb3J5LnR4dAorCWFuZCB0cnkgb3V0IHRoZSBtZW09NE0gdHJp
Y2sgdG8gc2VlIGlmIGF0IGxlYXN0IHNvbWUgaW5pdGlhbCBwYXJ0cworCW9m
IHlvdXIgUkFNIHdvcmsgd2VsbC4gVGhlIEJhZFJBTSByb3V0aW5lcyBoYWx0
IHRoZSBrZXJuZWwgaW4gcGFuaWMKKwlpZiB0aGUgcmVzZXJ2ZWQgYXJlYSBv
ZiBtZW1vcnkgKGNvbnRhaW5pbmcga2VybmVsIHN0dWZmKSBjb250YWlucwor
CWEgZmF1bHR5IGFkZHJlc3MuCisKK1J1bm5pbmcgYSBSQU0gY2hlY2tlcgor
CVRoZSBtZW1vcnkgY2hlY2tlciBpcyBub3QgYnVpbHQgaW50byB0aGUga2Vy
bmVsLCB0byBhdm9pZCBkZWxheXMgYXQKKwlydW50aW1lLiBJZiB5b3UgZXhw
ZXJpZW5jZSBwcm9ibGVtcyB0aGF0IG1heSBiZSBjYXVzZWQgYnkgUkFNLCBy
dW4KKwlhIGdvb2QgUkFNIGNoZWNrZXIsIHN1Y2ggYXMKKwkJaHR0cDovL3Jl
YWxpdHkuc2dpLmNvbS9jYnJhZHlfZGVudmVyL21lbXRlc3Q4NgorCVRoZSBv
dXRwdXQgb2YgYSBSQU0gY2hlY2tlciBwcm92aWRlcyBhZGRyZXNzZXMgdGhh
dCB3ZW50IHdyb25nLiBJbgorCXRoZSAzMiBNQiBjaGlwIHdpdGggNTEyIGZh
dWx0eSBiaXRzIG1lbnRpb25lZCBhYm92ZSwgdGhlIGVycm9ycyB3ZXJlCisJ
Zm91bmQgaW4gdGhlIDhNQi0xNk1CIHJhbmdlICh0aGUgRElNTSB3YXMgaW4g
c2xvdCAjMCkgYXQgYWRkcmVzc2VzCisJCXh4eDQyZjQKKwkJeHh4NjJmNAor
CQl4eHhjMmY0CisJCXh4eGUyZjQKKwlhbmQgdGhlIGVycm9yIHdhcyBhICJz
dGlja3kgMSBiaXQiLCBhIG1lbW9yeSBiaXQgdGhhdCBzdGF5ZWQgIjEiIG5v
CisJbWF0dGVyIHdoYXQgd2FzIHdyaXR0ZW4gdG8gaXQuIFRoZSByZWd1bGFy
aXR5IG9mIHRoaXMgcGF0dGVybgorCXN1Z2dlc3RzIHRoZSBkZWF0aCBvZiBh
IGJ1ZmZlciBhdCB0aGUgb3V0cHV0IHN0YWdlcyBvZiBhIHJvdyBvbiBvbmUg
b2YKKwl0aGUgY2hpcHMuIEkgZXhwZWN0IHN1Y2ggcmVndWxhcml0eSB0byBi
ZSBjb21tb25wbGFjZS4gRmluZGluZyB0aGlzCisJcmVndWxhcml0eSBjdXJy
ZW50bHkgaXMgaHVtYW4gZWZmb3J0LCBidXQgaXQgc2hvdWxkIG5vdCBiZSBo
YXJkIHRvCisJYWx0ZXIgYSBSQU0gY2hlY2tlciB0byBjYXB0dXJlIGl0IGlu
IHNvbWUgc29ydCBvZiBwYXR0ZXJuLCBwb3NzaWJseQorCXRoZSBCYWRSQU0g
cGF0dGVybnMgZGVzY3JpYmVkIGJlbG93LgorCisJQnkgdGhlIHdheSwgaWYg
eW91IG1hbmFnZSB0byBnZXQgaG9sZCBvZiBtZW10ZXN0ODYgdmVyc2lvbiAy
LjMgb3IKKwliZXlvbmQsIHlvdSBjYW4gY29uZmlndXJlIHRoZSBwcmludGlu
ZyBtb2RlIHRvIHByb2R1Y2UgQmFkUkFNIHBhdHRlcm5zLAorCXdoaWNoIGZp
bmQgb3V0IGV4YWN0bHkgd2hhdCB5b3UgbXVzdCBlbnRlciBvbiB0aGUgTElM
TzogY29tbWFuZGxpbmUsCisJZXhjZXB0IHRoYXQgeW91IHNob3VsZG4ndCBt
ZW50aW9uIHRoZSBhZGRlZCBzcGFjaW5nLiBUaGF0IG1lYW5zIHRoYXQKKwl5
b3UgY2FuIHNraXAgdGhlIGZvbGxvd2luZyBzdGVwLCB3aGljaCBzYXZlcyB5
b3UgYSAqbG90KiBvZiB3b3JrLgorCisJQWxzbyBieSB0aGUgd2F5LCBpZiB5
b3VyIG1hY2hpbmUgaGFzIHRoZSBJU0EgbWVtb3J5IGdhcCBpbiB0aGUgMTVN
LTE2TQorCXJhbmdlIHVuc3RvcHBhYmxlLCBMaW51eCBjYW4gZ2V0IGluIHRy
b3VibGUuIE9uZSB3YXkgb2YgaGFuZGxpbmcgdGhhdAorCXNpdHVhdGlvbiBp
cyBieSBzcGVjaWZ5aW5nIHRoZSB0b3RhbCBtZW1vcnkgc2l6ZSB0byBMaW51
eCB3aXRoIGEgYm9vdAorCXBhcmFtZXRlciBtZW09Li4uIGFuZCB0aGVuIHRv
IHRlbGwgaXQgdG8gdHJlYXQgdGhlIDE1TS0xNk0gcmFuZ2UgYXMKKwlmYXVs
dHkgd2l0aCBhbiBhZGRpdGlvbmFsIGJvb3QgcGFyYW1ldGVyLCBmb3IgaW5z
dGFuY2U6CisJCW1lbT0yNE0gYmFkcmFtPTB4MDBmMDAwMDAsMHhmZmYwMDAw
MAorCWlmIHlvdSBpbnN0YWxsZWQgMjRNQiBvZiBSQU0gaW4gdG90YWwuCisK
K0NhcHR1cmluZyBlcnJvcnMgaW4gYSBwYXR0ZXJuCisJSW5zdGVhZCBvZiBt
YW51YWxseSBwcm92aWRpbmcgYWxsIDUxMiBlcnJvcnMgdG8gdGhlIGtlcm5l
bCwgaXQncyBuaWNlcgorCXRvIGdlbmVyYXRlIGEgcGF0dGVybi4gU2luY2Ug
dGhlIHJlZ3VsYXJpdHkgaXMgYmFzZWQgb24gYWRkcmVzcyBkZWNvZGluZwor
CXNvZnR3YXJlLCB3aGljaCBnZW5lcmFsbHkgdGFrZXMgY2VydGFpbiBiaXRz
IGludG8gYWNjb3VudCBhbmQgaWdub3JlcworCW90aGVycywgd2Ugc2hhbGwg
cHJvdmlkZSBhIGZhdWx0eSBhZGRyZXNzIEYsIHRvZ2V0aGVyIHdpdGggYSBi
aXQgbWFzayBNCisJdGhhdCBzcGVjaWZpZXMgd2hpY2ggYml0cyBtdXN0IGJl
IGVxdWFsIHRvIEYuIEluIEMgY29kZSwgYW4gYWRkcmVzcyBBCisJaXMgZmF1
bHR5IGlmIGFuZCBvbmx5IGlmCisJCShGICYgTSkgPT0gKEEgJiBNKQorCW9y
IGFsdGVybmF0ZWx5IChjbG9zZXIgdG8gYSBoYXJkd2FyZSBpbXBsZW1lbnRh
dGlvbik6CisJCX4oKEYgXiBBKSAmIE0pCisJSW4gdGhlIGV4YW1wbGUgMzIg
TUIgY2hpcCwgd2UgaGFkIHRoZSBmYXVsdHkgYWRkcmVzc2VzIGluIDhNQi0x
Nk1COgorCQl4eHg0MmY0ICAgICAgICAgLi4uLjAxMDAuLi4uCisJCXh4eDYy
ZjQgICAgICAgICAuLi4uMDExMC4uLi4KKwkJeHh4YzJmNCAgICAgICAgIC4u
Li4xMTAwLi4uLgorCQl4eHhlMmY0ICAgICAgICAgLi4uLjExMTAuLi4uCisJ
VGhlIHNlY29uZCBjb2x1bW4gcmVwcmVzZW50cyB0aGUgYWx0ZXJuYXRpbmcg
aGV4IGRpZ2l0IGluIGJpbmFyeSBmb3JtLgorCUFwcGVyYW50bHksIHRoZSBm
aXJzdCBhbmQgb25lLWJ1dCBsYXN0IGJpbmFyeSBkaWdpdCBjYW4gYmUgYW55
dGhpbmcsCisJc28gdGhlIGJpbmFyeSBtYXNrIGZvciB0aGF0IHBhcnQgaXMg
MDEwMS4gVGhlIG1hc2sgZm9yIHRoZSBwYXJ0IGFmdGVyCisJdGhpcyBpcyAw
eGZmZiwgYW5kIHRoZSBwYXJ0IGJlZm9yZSBzaG91bGQgc2VsZWN0IGFueXRo
aW5nIGluIHRoZSByYW5nZQorCThNQi0xNk1CLCBvciAweDAwODAwMDAwLTB4
MDEwMDAwMDA7IHRoaXMgaXMgZG9uZSB3aXRoIGEgYml0bWFzaworCTB4ZmY4
MHh4eHguIENvbWJpbmluZyB0aGVzZSBwYXJ0aWFsIG1hc2tzLCB3ZSBnZXQ6
CisJCUY9MHgwMDgwNDJmNCAgICBNPTB4ZmY4MDVmZmYKKwlUaGF0IGNvdmVy
cyBldmVyeXRoaW5nIGZvciB0aGlzIERJTU07IGZvciBtb3JlIGNvbXBsaWNh
dGVkIGZhaWxpbmcKKwlESU1Ncywgb3IgZm9yIGEgY29tYmluYXRpb24gb2Yg
bXVsdGlwbGUgZmFpbGluZyBESU1NcywgaXQgY2FuIGJlCisJbmVjZXNzYXJ5
IHRvIHNldCB1cCBhIG51bWJlciBvZiBzdWNoIEYvTSBwYWlycy4KKworUmVi
b290aW5nIExpbnV4CisJTm93IHRoYXQgdGhlc2UgcGF0dGVybnMgYXJlIGtu
b3duIChhbmQgZG91YmxlLWNoZWNrZWQsIHRoZSBjYWxjdWxhdGlvbnMKKwlh
cmUgaGlnaGx5IGVycm9yLXByb25lLi4uIGl0IHdvdWxkIGJlIG5lYXQgdG8g
dGVzdCB0aGVtIGluIHRoZSBSQU0KKwljaGVja2VyLi4uKSB3ZSBzaW1wbHkg
cmVzdGFydCBMaW51eCB3aXRoIHRoZXNlIEYvTSBwYWlycyBhcyBhIHBhcmFt
ZXRlci4KKwlJZiB5b3Ugbm9ybWFsbHkgYm9vdCBhcyBmb2xsb3dzOgorCSAg
ICAgICBMSUxPOiBsaW51eAorCXlvdSBzaG91bGQgbm93IGJvb3Qgd2l0aAor
CSAgICAgICBMSUxPOiBsaW51eCBiYWRyYW09MHgwMDgwNDJmNCwweGZmODA1
ZmZmCisJb3IgcGVyaGFwcyBieSBtZW50aW9uaW5nIG1vcmUgRi9NIHBhaXJz
IGluIGFuIG9yZGVyIEYwLE0wLEYxLE0xLC4uLgorCVdoZW4geW91IHByb3Zp
ZGUgYW4gb2RkIG51bWJlciBvZiBhcmd1bWVudHMgdG8gYmFkcmFtLCB0aGUg
ZGVmYXVsdCBtYXNrCisJMHhmZmZmZmZmZiAob25seSBvbmUgYWRkcmVzcyBt
YXRjaGVkKSBpcyBhcHBsaWVkIHRvIHRoZSBwYXR0ZXJuLgorCisJQmV3YXJl
IG9mIHRoZSBjb21tYW5kbGluZSBsZW5ndGguIEF0IGxlYXN0IHVwIHRvIExJ
TE8gdmVyc2lvbiAwLjIxLAorCXRoZSBjb21tYW5kbGluZSBpcyBjdXQgb2Zm
IGFmdGVyIHRoZSA3OHRoIGNoYXJhY3RlcjsgbGF0ZXIgdmVyc2lvbnMKKwlt
YXkgZ28gYXMgZmFyIGFzIHRoZSBrZXJuZWwgZ29lcywgbmFtZWx5IDI1NSBj
aGFyYWN0ZXJzLiBJbiBubyB3YXkgaXMKKwlpdCBwb3NzaWJsZSB0byBlbnRl
ciBtb3JlIHRoYW4gMTAgbnVtYmVycyB0byB0aGUgYmFkcmFtIGJvb3Qgb3B0
aW9uLgorCisJV2hlbiB0aGUga2VybmVsIG5vdyBib290cywgaXQgc2hvdWxk
IG5vdCBnaXZlIGFueSB0cm91YmxlIHdpdGggUkFNLgorCU1pbmQgeW91LCB0
aGlzIGlzIHVuZGVyIHRoZSBhc3N1bXB0aW9uIHRoYXQgdGhlIGtlcm5lbCBh
bmQgaXRzIGRhdGEKKwlzdG9yYWdlIGRvIG5vdCBvdmVybGFwIGFuIGVycm9u
ZW91cyBwYXJ0LiBJZiB0aGlzIGhhcHBlbnMsIGFuZCB0aGUKKwlrZXJuZWwg
ZG9lcyBub3QgY2hva2Ugb24gaXQgcmlnaHQgYXdheSwgaXQgd2lsbCBzdG9w
IHdpdGggYSBwYW5pYy4KKwlZb3Ugd2lsbCBuZWVkIHRvIHByb3ZpZGUgYSBS
QU0gd2hlcmUgdGhlIGluaXRpYWwsIHNheSAyTUIsIGlzIGZhdWx0bGVzcy4K
KworCU5vdyBsb29rIHVwIHlvdXIgbWVtb3J5IHN0YXR1cyB3aXRoCisJICAg
ICAgIGRtZXNnIHwgZ3JlcCBeTWVtb3J5OgorCXdoaWNoIHByaW50cyBhIHNp
bmdsZSBsaW5lIHdpdGggaW5mb3JtYXRpb24gbGlrZQorCQlNZW1vcnk6IDE1
ODUyNGsvMTYzODQwayBhdmFpbGFibGUKKwkJCSg5NDBrIGtlcm5lbCBjb2Rl
LAorCQkJNDEyayByZXNlcnZlZCwKKwkJCTE4NTZrIGRhdGEsCisJCQk2MGsg
aW5pdCwKKwkJCTBrIGhpZ2htZW0sCisJCQkyMDQ4ayBCYWRSQU0pCisJVGhl
IGxhdHRlciBlbnRyeSwgdGhlIGJhZHJhbSwgaXMgMjA0OGsgdG8gcmVwcmVz
ZW50IHRoZSBsb3NzIG9mIDJNQgorCW9mIGdlbmVyYWwgcHVycG9zZSBSQU0g
ZHVlIHRvIHRoZSBlcnJvcnMuIE9yLCBwb3NpdGl2ZWx5IHJlcGhyYXNlZCwK
KwlpbnN0ZWFkIG9mIHRocm93aW5nIG91dCAzMk1CIGFzIHVzZWxlc3MsIHlv
dSBvbmx5IHRocm93IG91dCAyTUIuCisKKwlJZiB0aGUgc3lzdGVtIGlzIHN0
YWJsZSAodHJ5IGNvbXBpbGluZyBhIGZldyBrZXJuZWxzLCBhbmQgZG8gYSBm
ZXcKKwlmaW5kcyBpbiAvIG9yIHNvKSB5b3UgbWF5IGFkZCB0aGUgYm9vdCBw
YXJhbWV0ZXIgdG8gL2V0Yy9saWxvLmNvbmYKKwlhcyBhIGxpbmUgdG8gX2Fs
bF8gdGhlIGtlcm5lbHMgdGhhdCBoYW5kbGUgdGhpcyB0cm91YmxlIHdpdGgg
YSBsaW5lCisJCWFwcGVuZD0iYmFkcmFtPTB4MDA4MDQyZjQsMHhmZjgwNWZm
ZiIKKwlhZnRlciB3aGljaCB5b3UgcnVuICJsaWxvIi4KKwlXYXJuaW5nOiBE
b24ndCBleHBlcmltZW50IHdpdGggdGhlc2Ugc2V0dGluZ3Mgb24geW91ciBv
bmx5IGJvb3QgaW1hZ2UuCisJSWYgdGhlIEJhZFJBTSBvdmVybGF5cyBrZXJu
ZWwgY29kZSwgZGF0YSwgaW5pdCwgb3Igb3RoZXIgcmVzZXJ2ZWQKKwltZW1v
cnksIHRoZSBrZXJuZWwgd2lsbCBoYWx0IGluIHBhbmljLiBUcnkgc2V0dGlu
Z3Mgb24gYSB0ZXN0IGJvb3QKKwlpbWFnZSBmaXJzdCwgYW5kIGlmIHlvdSBn
ZXQgYSBwYW5pYyB5b3Ugc2hvdWxkIGNoYW5nZSB0aGUgb3JkZXIgb2YKKwl5
b3VyIERJTU1zIFt3aGljaCBtYXkgaW52b2x2ZSBidXlpbmcgYSBuZXcgb25l
IGp1c3QgdG8gYmUgYWJsZSB0bworCWNoYW5nZSB0aGUgb3JkZXJdLgorCisJ
WW91IGFyZSBhbGxvd2VkIHRvIGVudGVyIGFueSBudW1iZXIgb2YgQmFkUkFN
IHBhdHRlcm5zIGluIGFsbCB0aGUKKwlwbGFjZXMgZG9jdW1lbnRlZCBpbiB0
aGlzIGZpbGUuIFRoZXkgd2lsbCBhbGwgYXBwbHkuIEl0IGlzIGV2ZW4KKwlw
b3NzaWJsZSB0byBtZW50aW9uIHNldmVyYWwgQmFkUkFNIHBhdHRlcm5zIGlu
IGEgc2luZ2xlIHBsYWNlLiBUaGUKKwljb21wbGV0aW9uIG9mIGFuIG9kZCBu
dW1iZXIgb2YgYXJndW1lbnRzIHdpdGggdGhlIGRlZmF1bHQgbWFzayBpcwor
CWRvbmUgc2VwYXJhdGVseSBmb3IgZWFjaCBiYWRyYW09Li4uIG9wdGlvbi4K
KworS2VybmVsIEN1c3RvbWlzYXRpb24KKwlTb21lIHBlb3BsZSBwcmVmZXIg
dG8gZW50ZXIgdGhlaXIgYmFkcmFtIHBhdHRlcm5zIGluIHRoZSBrZXJuZWws
IGFuZAorCXRoaXMgaXMgYWxzbyBwb3NzaWJsZS4gSW4gbW0vcGFnZV9hbGxv
Yy5jIHRoZXJlIGlzIGFuIGFycmF5IG9mIHVuc2lnbmVkCisJbG9uZyBpbnRl
Z2VycyBpbnRvIHdoaWNoIHRoZSBwYXJhbWV0ZXJzIGNhbiBiZSBlbnRlcmVk
LCBwcmVmaXhlZCB3aXRoCisJdGhlIG51bWJlciBvZiBpbnRlZ2VycyAodHdp
Y2UgdGhlIG51bWJlciBvZiBwYXR0ZXJucykuIFRoZSBhcnJheSBpcworCW5h
bWVkIGJhZHJhbV9jdXN0b20gYW5kIGl0IHdpbGwgYmUgYWRkZWQgdG8gdGhl
IEJhZFJBTSBsaXN0IHdoZW5ldmVyIGFuCisJb3B0aW9uICdiYWRyYW0nIGlz
IHByb3ZpZGVkIG9uIHRoZSBjb21tYW5kbGluZSB3aGVuIGJvb3RpbmcsIGVp
dGhlcgorCXdpdGggb3Igd2l0aG91dCBhZGRpdGlvbmFsIHBhdHRlcm5zLgor
CisJRm9yIHRoZSBwcmV2aW91cyBleGFtcGxlLCB0aGUgY29kZSB3b3VsZCBi
ZWNvbWUKKworCXN0YXRpYyB1bnNpZ25lZCBsb25nIF9faW5pdCBiYWRyYW1f
Y3VzdG9tW10gPSB7CisJCTIsCS8vIE51bWJlciBvZiBsb25nd29yZHMgdGhh
dCBmb2xsb3csIGFzIEYvTSBwYWlycworCQkweDAwODA0MmY0TCwgMHhmZjgw
NWZmZkwsCisJfTsKKworCUV2ZW4gb24gdGhpcyBwbGFjZSB5b3UgbWF5IGFz
c3VtZSB0aGUgZGVmYXVsdCBtYXNrIHRvIGJlIGZpbGxlZCBpbgorCXdoZW4g
eW91IGVudGVyIGFuIG9kZCBudW1iZXIgb2YgbG9uZ3dvcmRzLiBTcGVjaWZ5
IHRoZSBudW1iZXIgb2YKKwlsb25nd29yZHMgdG8gYmUgMCB0byBhdm9pZCBp
bmZsdWVuY2Ugb2YgdGhpcyBjdXN0b20gQmFkUkFNIGxpc3QuCisKK0JhZFJB
TSBjbGFzc2lmaWNhdGlvbgorCVRoaXMgdGVjaG5pcXVlIG1heSBzdGFydCBh
IGxpdmVseSBtYXJrZXQgZm9yICJkZWFkIiBSQU0uIEl0IGlzIGltcG9ydGFu
dAorCXRvIHJlYWxpc2UgdGhhdCBzb21lIFJBTXMgYXJlIG1vcmUgZGVhZCB0
aGFuIG90aGVycy4gU28sIGluc3RlYWQgb2YKKwlqdXN0IHByb3ZpZGluZyBh
IFJBTSBzaXplLCBpdCBpcyBhbHNvIGltcG9ydGFudCB0byBrbm93IHRoZSBC
YWRSQU0KKwljbGFzcywgd2hpY2ggaXMgZGVmaW5lZCBhcyBmb2xsb3dzOgor
CisJCUEgQmFkUkFNIGNsYXNzIE4gbWVhbnMgdGhhdCBhdCBtb3N0IDJeTiBi
eXRlcyBoYXZlIGEgcHJvYmxlbSwKKwkJYW5kIHRoYXQgYWxsIHByb2JsZW1z
IHdpdGggdGhlIFJBTXMgYXJlIHBlcnNpc3RlbnQ6IFRoZXkKKwkJYXJlIHBy
ZWRpY3RhYmxlIGFuZCBhbHdheXMgc2hvdyB1cC4KKworCVRoZSBESU1NIHRo
YXQgc2VydmVzIGFzIGFuIGV4YW1wbGUgaGVyZSB3YXMgb2YgY2xhc3MgOSwg
c2luY2UgNTEyPTJeOQorCWVycm9ycyB3ZXJlIGZvdW5kLiBIaWdoZXIgY2xh
c3NlcyBhcmUgd29yc2UsICJjb3JyZWN0IiBSQU0gaXMgb2YgY2xhc3MKKwkt
MSAob3IgZXZlbiBsZXNzLCBhdCB5b3VyIGNob2ljZSkuCisJQ2xhc3MgTiBh
bHNvIG1lYW5zIHRoYXQgdGhlIGJpdG1hc2sgZm9yIHlvdXIgY2hpcCAoaWYg
dGhlcmUncyBqdXN0IG9uZSwKKwl0aGF0IGlzKSBjb3VudHMgTiBiaXRzICIw
IiBhbmQgaXQgbWVhbnMgdGhhdCAoaWYgbm8gZmF1bHRzIGZhbGwgaW4gdGhl
CisJc2FtZSBwYWdlKSBhbiBhbW91bnQgb2YgMl5OKlBBR0VTSVpFIG1lbW9y
eSBpcyBsb3N0LCBpbiB0aGUgZXhhbXBsZSBvbgorCWFuIGkzODYgYXJjaGl0
ZWN0dXJlIHRoYXQgd291bGQgYmUgMl45KjRrPTJNQiwgd2hpY2ggYWNjb3Vu
dHMgZm9yIHRoZQorCWluaXRpYWwgY2xhaW0gb2YgMzBNQiBSQU0gZ2FpbmVk
IHdpdGggdGhpcyBESU1NLgorCisJTm90ZSB0aGF0IHRoaXMgc2NoZW1lIGhh
cyBkZWxpYmVyYXRlbHkgYmVlbiBkZWZpbmVkIHRvIGJlIGluZGVwZW5kZW50
CisJb2YgbWVtb3J5IHRlY2hub2xvZ3kgYW5kIG9mIGNvbXB1dGVyIGFyY2hp
dGVjdHVyZS4KKworS25vd24gQnVncworCUxJTE8gaXMga25vd24gdG8gY3V0
IG9mZiBjb21tYW5kbGluZXMgd2hpY2ggYXJlIHRvbyBsb25nLiBGb3IgdGhl
CisJbGlsby0wLjIxIGRpc3RyaWJ1dGlvbiwgYSBjb21tYW5kbGluZSBtYXkg
bm90IGV4Y2VlZCA3OCBjaGFyYWN0ZXJzLAorCXdoaWxlIGFjdHVhbGx5LCAy
NTUgd291bGQgYmUgcG9zc2libGUgW29uIGkzODYsIGtlcm5lbCAyLjIuMTZd
LgorCUxJTE8gZG9lcyBfbm90XyByZXBvcnQgdG9vLWxvbmcgY29tbWFuZGxp
bmVzLCBidXQgdGhlIGVycm9yIHdpbGwKKwlzaG93IHVwIGFzIGVpdGhlciBh
IHBhbmljIGF0IGJvb3QgdGltZSwgc3RhdGluZworCQlwYW5pYzogQmFkUkFN
IHBhZ2UgaW4gaW5pdGlhbCBhcmVhCisJb3IgdGhlIGRtZXNnIGxpbmUgc3Rh
cnRpbmcgd2l0aCBNZW1vcnk6IHdpbGwgbWVudGlvbiBhbiB1bnByZWRpY3Rl
ZAorCW51bWJlciBvZiBraWxvYnl0ZXMuIChOb3RlIHRoYXQgdGhlIGxhdHRl
ciBudW1iZXIgb25seSBpbmNsdWRlcworCWVycm9ycyBpbiBhY2Nlc3NlZCBt
ZW1vcnkuKQorCitGdXR1cmUgUG9zc2liaWxpdGllcworCUl0IHdvdWxkIGJl
IHBvc3NpYmxlIHRvIHVzZSBldmVuIG1vcmUgb2YgdGhlIGZhdWx0eSBSQU1z
IGJ5IGVtcGxveWluZworCXRoZW0gZm9yIHNsYWJzLiBUaGUgc21hbGxlciBh
bGxvY2F0aW9uIGdyYW51bGFyaXR5IG9mIHNsYWJzIG1ha2VzIGl0CisJcG9z
c2libGUgdG8gdGhyb3cgb3V0IGp1c3QsIHNheSwgMzIgYnl0ZXMgc3Vycm91
bmRpbmcgYW4gZXJyb3IuIFRoaXMKKwl3b3VsZCBtZWFuIHRoYXQgdGhlIGV4
YW1wbGUgRElNTSBvbmx5IGxvb3NlcyAxNmtCIGluc3RlYWQgb2YgMk1CLgor
CUl0IG1pZ2h0IGV2ZW4gYmUgcG9zc2libGUgdG8gYWxsb2NhdGUgdGhlIHNs
YWJzIGluIHN1Y2ggYSB3YXkgdGhhdCwKKwl3aGVyZSBwb3NzaWJsZSwgdGhl
IHJlbWFpbmluZyBieXRlcyBpbiBhIHNsYWIgc3RydWN0dXJlIGFyZSBhbGxv
Y2F0ZWQKKwlhcm91bmQgdGhlIGVycm9yLCByZWR1Y2luZyB0aGUgUkFNIGxv
c3MgdG8gMCBpbiB0aGUgb3B0aW1hbCBzaXR1YXRpb24hCisKKwlIb3dldmVy
LCB0aGlzIHlpZWxkIGlzIHNvbWV3aGF0IGZha2VkOiBJdCBpcyBwb3NzaWJs
ZSB0byBwcm92aWRlIDUxMgorCXBhZ2VzIG9mIDMyLWJ5dGUgc2xhYnMsIGJ1
dCBpdCBpcyBub3QgY2VydGFpbiB0aGF0IGFueW9uZSB3b3VsZCB1c2UKKwl0
aGF0IG1hbnkgMzItYnl0ZSBzbGFicyBhdCBhbnkgdGltZS4KKworCUEgYmV0
dGVyIHNvbHV0aW9uIG1pZ2h0IGJlIHRvIGFsdGVyIHRoZSBwYWdlIGFsbG9j
YXRpb24gZm9yIGEgc2xhYiB0bworCWhhdmUgYSBwcmVmZXJlbmNlIGZvciBC
YWRSQU0gcGFnZXMsIGFuZCBnaXZlbiB0aG9zZSBhIHNwZWNpYWwgdHJlYXRt
ZW50LgorCVRoaXMgd2F5LCB0aGUgQmFkUkFNIHdvdWxkIGJlIHNwcmVhZCBv
dmVyIGFsbCB0aGUgc2xhYnMsIHdoaWNoIHNlZW1zCisJbW9yZSBsaWtlbHkg
dG8gYmUgYSBgdHJ1ZScgcGF5LW9mZi4gVGhpcyB3b3VsZCB5aWVsZCBtb3Jl
IG92ZXJoZWFkIGF0CisJc2xhYiBhbGxvY2F0aW9uIHRpbWUsIGJ1dCBvbiB0
aGUgb3RoZXIgaGFuZCwgYnkgdGhlIG5hdHVyZSBvZiBzbGFicywKKwlzdWNo
IGFsbG9jYXRpb25zIGFyZSBtYWRlIGFzIHJhcmUgYXMgcG9zc2libGUsIHNv
IGl0IG1pZ2h0IG5vdCBtYXR0ZXIKKwl0aGF0IG11Y2guIEkgYW0gdW5jZXJ0
YWluIHdoZXJlIHRvIGdvLgorCisJTWFueSBzdWdnZXN0aW9ucyBoYXZlIGJl
ZW4gbWFkZSB0byBpbnNlcnQgYSBSQU0gY2hlY2tlciBhdCBib290IHRpbWU7
CisJc2luY2UgdGhpcyB3b3VsZCBsZWF2ZSB0aGUgdGltZSB0byBkbyBvbmx5
IHZlcnkgbWVhZ2VyIGNoZWNraW5nLCBpdAorCWlzIG5vdCBhIHJlYXNvbmFi
bGUgb3B0aW9uOyB3ZSBhbHJlYWR5IGhhdmUgYSBCSU9TIGRvaW5nIHRoYXQg
aW4gbW9zdAorCXN5c3RlbXMhCisKKwlJdCB3b3VsZCBiZSBpbnRlcmVzdGlu
ZyB0byBpbnRlZ3JhdGUgdGhpcyBmdW5jdGlvbmFsaXR5IHdpdGggdGhlCisJ
c2VsZi12ZXJpZnlpbmcgbmF0dXJlIG9mIEVDQyBSQU0uIFRoZXNlIG1lbW9y
aWVzIGNhbiBldmVuIGRpc3Rpbmd1aXNoCisJYmV0d2VlbiByZWNvcmFibGUg
YW5kIHVucmVjb3ZlcmFibGUgZXJyb3JzISBTdWNoIG1lbW9yeSBoYXMgYmVl
bgorCWhhbmRsZWQgaW4gb2xkZXIgb3BlcmF0aW5nIHN5c3RlbXMgYnkgYHRl
c3RpbmcnIG9uY2UtZmFpbGVkIG1lbW9yeQorCWJsb2NrcyBmb3IgYSB3aGls
ZSwgYnkgcGxhY2luZyBvbmx5IChyZWxvYWRhYmxlKSBwcm9ncmFtIGNvZGUg
aW4gaXQuCisJVW5mb3J0dW5hdGVseSwgSSBwb3NzZXNzIG5vIGZhdWx0eSBF
Q0MgbW9kdWxlcyB0byB3b3JrIHRoaXMgb3V0LgorCitOYW1lcyBhbmQgUGxh
Y2VzCisJVGhlIGhvbWUgcGFnZSBvZiB0aGlzIHByb2plY3QgaXMgb24KKwkJ
aHR0cDovL3JpY2sudmFucmVpbi5vcmcvbGludXgvYmFkcmFtCisJVGhpcyBw
YWdlIGFsc28gbGlua3MgdG8gTmljbyBTY2htb2lnbCdzIGV4cGVyaW1lbnRh
bCBleHRlbnNpb25zIHRvCisJdGhpcyBwYXRjaCAod2l0aCBkZWJ1Z2dpbmcg
YW5kIGEgZmV3IG90aGVyIGZhbmN5IHRoaW5ncykuCisKKwlJbiBjYXNlIHlv
dSBoYXZlIGV4cGVyaWVuY2VzIHdpdGggdGhlIEJhZFJBTSBzb2Z0d2FyZSB3
aGljaCBkaWZmZXIgZnJvbQorCXRoZSB0ZXN0IHJlcG9ydGluZ3Mgb24gdGhh
dCBzaXRlLCBJIGhvcGUgeW91IHdpbGwgbWFpbCBtZSB3aXRoIHRoYXQKKwlu
ZXcgaW5mb3JtYXRpb24uCisKKwlUaGUgQmFkUkFNIHByb2plY3QgaXMgYW4g
aWRlYSBhbmQgaW1wbGVtZW50YXRpb24gYnkKKwkJUmljayB2YW4gUmVpbgor
CQlCaW5uZW5lcyA2NworCQk5NDA3IENYIEFzc2VuCisJCVRoZSBOZXRoZXJs
YW5kcworCQl2YW5yZWluQGNzLnV0d2VudGUubmwKKwlJZiB5b3UgbGlrZSBp
dCwgYSBwb3N0Y2FyZCB3b3VsZCBiZSBtdWNoIGFwcHJlY2lhdGVkIDstKQor
CisKKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgRW5qb3ksCisJICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtUmljay4KKwpk
aWZmIC11ck4gbGludXgtMi41LjczLW1tMi9Eb2N1bWVudGF0aW9uL2tlcm5l
bC1wYXJhbWV0ZXJzLnR4dCBsaW51eC0yLjUvRG9jdW1lbnRhdGlvbi9rZXJu
ZWwtcGFyYW1ldGVycy50eHQKLS0tIGxpbnV4LTIuNS43My1tbTIvRG9jdW1l
bnRhdGlvbi9rZXJuZWwtcGFyYW1ldGVycy50eHQJMjAwMy0wNy0wMSAxOTo1
OTo0MC4wMDAwMDAwMDAgKzAxMDAKKysrIGxpbnV4LTIuNS9Eb2N1bWVudGF0
aW9uL2tlcm5lbC1wYXJhbWV0ZXJzLnR4dAkyMDAzLTA3LTAyIDAxOjUyOjEw
LjkyMTY5ODk4NSArMDEwMApAQCAtMTUsNiArMTUsNyBAQAogCUFQSUMJQVBJ
QyBzdXBwb3J0IGlzIGVuYWJsZWQuCiAJQVBNCUFkdmFuY2VkIFBvd2VyIE1h
bmFnZW1lbnQgc3VwcG9ydCBpcyBlbmFibGVkLgogCUFYMjUJQXBwcm9wcmlh
dGUgQVguMjUgc3VwcG9ydCBpcyBlbmFibGVkLgorCUJBRFJBTQlTdXBwb3J0
IGZvciBmYXVsdHkgUkFNIGNoaXBzIGlzIGVuYWJsZWQuCiAJQ0QJQXBwcm9w
cmlhdGUgQ0Qgc3VwcG9ydCBpcyBlbmFibGVkLgogCURFVkZTCWRldmZzIHN1
cHBvcnQgaXMgZW5hYmxlZC4gCiAJRFJNCURpcmVjdCBSZW5kZXJpbmcgTWFu
YWdlbWVudCBzdXBwb3J0IGlzIGVuYWJsZWQuIApAQCAtMTYyLDYgKzE2Myw5
IEBACiAJYXp0Y2Q9CQlbSFcsQ0RdIEF6dGVjaCBDRDI2OCBDRFJPTSBkcml2
ZXIKIAkJCUZvcm1hdDogPGlvPiwweDc5ICg/KQogCisJYmFkcmFtPQkJW0JB
RFJBTV0gQXZvaWQgYWxsb2NhdGluZyBmYXVsdHkgUkFNIGFkZHJlc3Nlcy4K
KworCiAJYmF5Y29tX2VwcD0JW0hXLEFYMjVdCiAJCQlGb3JtYXQ6IDxpbz4s
PG1vZGU+CiAgCmRpZmYgLXVyTiBsaW51eC0yLjUuNzMtbW0yL0RvY3VtZW50
YXRpb24vbWVtb3J5LnR4dCBsaW51eC0yLjUvRG9jdW1lbnRhdGlvbi9tZW1v
cnkudHh0Ci0tLSBsaW51eC0yLjUuNzMtbW0yL0RvY3VtZW50YXRpb24vbWVt
b3J5LnR4dAkyMDAzLTA2LTE3IDA1OjIwOjI4LjAwMDAwMDAwMCArMDEwMAor
KysgbGludXgtMi41L0RvY3VtZW50YXRpb24vbWVtb3J5LnR4dAkyMDAzLTA3
LTAxIDIwOjAyOjI3LjAwMDAwMDAwMCArMDEwMApAQCAtMTgsNiArMTgsMTQg
QEAKIAkgICBhcyB5b3UgYWRkIG1vcmUgbWVtb3J5LiAgQ29uc2lkZXIgZXhj
aGFuZ2luZyB5b3VyIAogICAgICAgICAgICBtb3RoZXJib2FyZC4KIAorCTQp
IEEgc3RhdGljIGRpc2NoYXJnZSBvciBwcm9kdWN0aW9uIGZhdWx0IGNhdXNl
cyBhIFJBTSBtb2R1bGUKKwkgICB0byBoYXZlIChwcmVkaWN0YWJsZSkgZXJy
b3JzLCB1c3VhbGx5IG1lYW5pbmcgdGhhdCBjZXJ0YWluCisJICAgYml0cyBj
YW5ub3QgYmUgc2V0IG9yIHJlc2V0LiBJbnN0ZWFkIG9mIHRocm93aW5nIGF3
YXkgeW91cgorCSAgIFJBTSBtb2R1bGUsIHlvdSBtYXkgcmVhZCAvdXNyL3Ny
Yy9saW51eC9Eb2N1bWVudGF0aW9uL2JhZHJhbS50eHQKKwkgICB0byBsZWFy
biBob3cgdG8gZGV0ZWN0LCBsb2NhdGUgYW5kIGNpcmN1aW12ZW50IHN1Y2gg
ZXJyb3JzCisJICAgaW4geW91ciBSQU0gbW9kdWxlLgorCisKIEFsbCBvZiB0
aGVzZSBwcm9ibGVtcyBjYW4gYmUgYWRkcmVzc2VkIHdpdGggdGhlICJtZW09
WFhYTSIgYm9vdCBvcHRpb24KICh3aGVyZSBYWFggaXMgdGhlIHNpemUgb2Yg
UkFNIHRvIHVzZSBpbiBtZWdhYnl0ZXMpLiAgCiBJdCBjYW4gYWxzbyB0ZWxs
IExpbnV4IHRvIHVzZSBsZXNzIG1lbW9yeSB0aGFuIGlzIGFjdHVhbGx5IGlu
c3RhbGxlZC4KQEAgLTQ1LDYgKzUzLDggQEAKIAogCSogVHJ5IHBhc3Npbmcg
dGhlICJtZW09NE0iIG9wdGlvbiB0byB0aGUga2VybmVsIHRvIGxpbWl0CiAJ
ICBMaW51eCB0byB1c2luZyBhIHZlcnkgc21hbGwgYW1vdW50IG9mIG1lbW9y
eS4KKwkgIElmIHRoaXMgaGVscHMsIHJlYWQgL3Vzci9zcmMvbGludXgvRG9j
dW1lbnRhdGlvbi9iYWRyYW0udHh0CisJICB0byBsZWFybiBob3cgdG8gZmlu
ZCBhbmQgY2lyY3VpbXZlbnQgbWVtb3J5IGVycm9ycy4KIAogCiBPdGhlciB0
cmlja3M6CmRpZmYgLXVyTiBsaW51eC0yLjUuNzMtbW0yL2FyY2gvaTM4Ni9k
ZWZjb25maWcgbGludXgtMi41L2FyY2gvaTM4Ni9kZWZjb25maWcKLS0tIGxp
bnV4LTIuNS43My1tbTIvYXJjaC9pMzg2L2RlZmNvbmZpZwkyMDAzLTA2LTE3
IDA1OjIwOjA3LjAwMDAwMDAwMCArMDEwMAorKysgbGludXgtMi41L2FyY2gv
aTM4Ni9kZWZjb25maWcJMjAwMy0wNy0wMSAyMDowMjoyOC4wMDAwMDAwMDAg
KzAxMDAKQEAgLTEzMiw2ICsxMzIsNyBAQAogIyBDT05GSUdfRUlTQSBpcyBu
b3Qgc2V0CiAjIENPTkZJR19NQ0EgaXMgbm90IHNldAogQ09ORklHX0hPVFBM
VUc9eQorQ09ORklHX0JBRFJBTT15CiAKICMKICMgUENNQ0lBL0NhcmRCdXMg
c3VwcG9ydApkaWZmIC11ck4gbGludXgtMi41LjczLW1tMi9hcmNoL2kzODYv
bW0vaW5pdC5jIGxpbnV4LTIuNS9hcmNoL2kzODYvbW0vaW5pdC5jCi0tLSBs
aW51eC0yLjUuNzMtbW0yL2FyY2gvaTM4Ni9tbS9pbml0LmMJMjAwMy0wNy0w
MSAxOTo1OToyOC4wMDAwMDAwMDAgKzAxMDAKKysrIGxpbnV4LTIuNS9hcmNo
L2kzODYvbW0vaW5pdC5jCTIwMDMtMDctMDIgMDA6NDA6MzEuMDAwMDAwMDAw
ICswMTAwCkBAIC0yMjMsMTMgKzIyMywyNCBAQAogCXBrbWFwX3BhZ2VfdGFi
bGUgPSBwdGU7CQogfQogCi12b2lkIF9faW5pdCBvbmVfaGlnaHBhZ2VfaW5p
dChzdHJ1Y3QgcGFnZSAqcGFnZSwgaW50IHBmbiwgaW50IGJhZF9wcHJvKQor
LyoqCisgKiBAcGFyYW0gYmFkCXNldCBvbiByZXR1cm4gdG8gd2hldGhlciB0
aGUgcGFnZSBpcyBiYWQgUkFNCisgKi8KK3ZvaWQgX19pbml0IG9uZV9oaWdo
cGFnZV9pbml0KHN0cnVjdCBwYWdlICpwYWdlLCBpbnQgcGZuLCBpbnQgYmFk
X3Bwcm8sCisJCQkJX0Jvb2wgKmJhZCkKIHsKKwkqYmFkID0gMDsKIAlpZiAo
cGFnZV9pc19yYW0ocGZuKSAmJiAhKGJhZF9wcHJvICYmIHBhZ2Vfa2lsbHNf
cHBybyhwZm4pKSkgewogCQlDbGVhclBhZ2VSZXNlcnZlZChwYWdlKTsKIAkJ
c2V0X2JpdChQR19oaWdobWVtLCAmcGFnZS0+ZmxhZ3MpOwogCQlzZXRfcGFn
ZV9jb3VudChwYWdlLCAxKTsKLQkJX19mcmVlX3BhZ2UocGFnZSk7CisjaWZk
ZWYgQ09ORklHX0JBRFJBTQorCQlpZiAoUGFnZUJhZChwYWdlKSkKKwkJCSpi
YWQgPSAxOworCQllbHNlCisjZWxzZQorCSAJCV9fZnJlZV9wYWdlKHBhZ2Up
OworI2VuZGlmCiAJCXRvdGFsaGlnaF9wYWdlcysrOwogCX0gZWxzZQogCQlT
ZXRQYWdlUmVzZXJ2ZWQocGFnZSk7CkBAIC0yMzksOCArMjUwLDEwIEBACiB2
b2lkIF9faW5pdCBzZXRfaGlnaG1lbV9wYWdlc19pbml0KGludCBiYWRfcHBy
bykgCiB7CiAJaW50IHBmbjsKLQlmb3IgKHBmbiA9IGhpZ2hzdGFydF9wZm47
IHBmbiA8IGhpZ2hlbmRfcGZuOyBwZm4rKykKLQkJb25lX2hpZ2hwYWdlX2lu
aXQocGZuX3RvX3BhZ2UocGZuKSwgcGZuLCBiYWRfcHBybyk7CisJZm9yIChw
Zm4gPSBoaWdoc3RhcnRfcGZuOyBwZm4gPCBoaWdoZW5kX3BmbjsgcGZuKysp
IHsKKwkJb25lX2hpZ2hwYWdlX2luaXQocGZuX3RvX3BhZ2UocGZuKSwgcGZu
LCBiYWRfcHBybywgJmJhZCk7CisJCWlmIChiYWQpIGJhZHBhZ2VzKys7CisJ
fQogCXRvdGFscmFtX3BhZ2VzICs9IHRvdGFsaGlnaF9wYWdlczsKIH0KICNl
bHNlCkBAIC00MzEsNyArNDQ0LDcgQEAKIHZvaWQgX19pbml0IG1lbV9pbml0
KHZvaWQpCiB7CiAJZXh0ZXJuIGludCBwcHJvX3dpdGhfcmFtX2J1Zyh2b2lk
KTsKLQlpbnQgY29kZXNpemUsIHJlc2VydmVkcGFnZXMsIGRhdGFzaXplLCBp
bml0c2l6ZTsKKwlpbnQgY29kZXNpemUsIHJlc2VydmVkcGFnZXMsIGJhZHBh
Z2VzLCBkYXRhc2l6ZSwgaW5pdHNpemU7CiAJaW50IHRtcDsKIAlpbnQgYmFk
X3Bwcm87CiAKQEAgLTQ2NywxMyArNDgwLDE3IEBACiAJdG90YWxyYW1fcGFn
ZXMgKz0gX19mcmVlX2FsbF9ib290bWVtKCk7CiAKIAlyZXNlcnZlZHBhZ2Vz
ID0gMDsKKwliYWRwYWdlcyA9IDA7CiAJZm9yICh0bXAgPSAwOyB0bXAgPCBt
YXhfbG93X3BmbjsgdG1wKyspCiAJCS8qCi0JCSAqIE9ubHkgY291bnQgcmVz
ZXJ2ZWQgUkFNIHBhZ2VzCisJCSAqIE9ubHkgY291bnQgcmVzZXJ2ZWQgYW5k
IGIwMiAwMToxMjowOS4wMDAwMDAwMDAgKzAxMDAKQEAgLTEyLDYgKzEyLDcg
QEAKICAqICBab25lIGJhbGFuY2luZywgS2Fub2ogU2FyY2FyLCBTR0ksIEph
biAyMDAwCiAgKiAgUGVyIGNwdSBob3QvY29sZCBwYWdlIGxpc3RzLCBidWxr
IGFsbG9jYXRpb24sIE1hcnRpbiBKLiBCbGlnaCwgU2VwdCAyMDAyCiAgKiAg
ICAgICAgICAobG90cyBvZiBiaXRzIGJvcnJvd2VkIGZyb20gSW5nbyBNb2xu
YXIgJiBBbmRyZXcgTW9ydG9uKQorICogIEJhZFJBTSBoYW5kbGluZywgUmlj
ayB2YW4gUmVpbiwgRmViIDIwMDEKICAqLwogCiAjaW5jbHVkZSA8bGludXgv
Y29uZmlnLmg+CkBAIC0xNjE1LDMgKzE2MTYsOTYgQEAKIAlzZXR1cF9wZXJf
em9uZV9wYWdlc19taW4oKTsKIAlyZXR1cm4gMDsKIH0KKworCisjaWZkZWYg
Q09ORklHX0JBRFJBTQorCisvKiBHaXZlbiBhIHBvaW50ZWQtYXQgYWRkcmVz
cyBhbmQgYSBtYXNrLCBpbmNyZW1lbnQgdGhlIHBhZ2Ugc28gdGhhdCB0aGUK
KyAqIG1hc2sgaGlkZXMgdGhlIGluY3JlbWVudC4gUmV0dXJuIDAgaWYgbm8g
aW5jcmVtZW50IGlzIHBvc3NpYmxlLgorICovCitzdGF0aWMgaW50IF9faW5p
dCBuZXh0X21hc2tlZF9hZGRyZXNzICh1bnNpZ25lZCBsb25nICphZGRycCwg
dW5zaWduZWQgbG9uZyBtYXNrKQoreworICAgICAgICB1bnNpZ25lZCBsb25n
IGluYz0xOworICAgICAgICB1bnNpZ25lZCBsb25nIG5ld3ZhbCA9ICphZGRy
cDsKKwl3aGlsZSAoaW5jICYgbWFzaykKKwkJaW5jICs9IGluYzsKKyAgICAg
ICAgd2hpbGUgKGluYyAhPSAwKSB7CisJCW5ld3ZhbCArPSBpbmM7CisJCW5l
d3ZhbCAmPSB+bWFzazsKKwkJbmV3dmFsIHw9ICgoKmFkZHJwKSAmIG1hc2sp
OworCQlpZiAobmV3dmFsID4gKmFkZHJwKSB7CisJCQkqYWRkcnAgPSBuZXd2
YWw7CisJCQlyZXR1cm4gMTsKKwkJfQorCQlkbyB7CisJCQlpbmMgKz0gaW5j
OworCQl9IHdoaWxlIChpbmMgJiB+bWFzayk7CisJCXdoaWxlIChpbmMgJiBt
YXNrKQorCQkJaW5jICs9IGluYzsKKyAgICAgICAgfQorICAgICAgICByZXR1
cm4gMDsKK30KKworCit2b2lkIF9faW5pdCBiYWRyYW1fbWFya3BhZ2VzIChp
bnQgYXJnYywgdW5zaWduZWQgbG9uZyAqYXJndikgeworCXVuc2lnbmVkIGxv
bmcgYWRkciwgbWFzazsKKyAgICAgICAgd2hpbGUgKGFyZ2MtLSA+IDApIHsK
KyAgICAgICAgICAgICAgICBhZGRyID0gKmFyZ3YrKzsKKyAgICAgICAgICAg
ICAgICBtYXNrID0gKGFyZ2MtLSA+IDApID8gKmFyZ3YrKyA6IH4wTDsKKyAg
ICAgICAgICAgICAgICBtYXNrIHw9IH5QQUdFX01BU0s7CS8vIE9wdGltYWxp
c2F0aW9uCisJCWFkZHIgJj0gbWFzazsJCS8vICBOb3JtYWxpc2F0aW9uCisg
ICAgICAgICAgICAgICAgZG8geworCQkJc3RydWN0IHBhZ2UgKnBnID0gcGh5
c190b19wYWdlKGFkZHIpOworcHJpYXNtLWkzODYvcGFnZS5oCTIwMDMtMDct
MDEgMjA6NDk6MjAyIDAxOjEyOjA5LjAwMDAwMDAwMCArMDEwMApAQCAtMTIs
NiArMTIsNyBAQAogICogIFpvbmUgYmFsYW5jaW5nLCBLYW5vaiBTYXJjYXIs
IFNHSSwgSmFuIDIwMDAKICAqICBQZXIgY3B1IGhvdC9jb2xkIHBhZ2UgbGlz
dHMsIGJ1bGsgYWxsb2NhdGlvbiwgTWFydGluIEouIEJsaWdoLCBTZXB0IDIw
MDIKICAqICAgICAgICAgIChsb3RzIG9mIGJpdHMgYm9ycm93ZWQgZnJvbSBJ
bmdvIE1vbG5hciAmIEFuZHJldyBNb3J0b24pCisgKiAgQmFkUkFNIGhhbmRs
aW5nLCBSaWNrIHZhbiBSZWluLCBGZWIgMjAwMQogICovCiAKICNpbmNsdWRl
IDxsaW51eC9jb25maWcuaD4KQEAgLTE2MTUsMyArMTYxNiw5NiBAQAogCXNl
dHVwX3Blcl96b25lX3BhZ2VzX21pbigpOwogCXJldHVybiAwOwogfQorCisK
KyNpZmRlZiBDT05GSUdfQkFEUkFNCisKKy8qIEdpdmVuIGEgcG9pbnRlZC1h
dCBhZGRyZXNzIGFuZCBhIG1hc2ssIGluY3JlbWVudCB0aGUgcGFnZSBzbyB0
aGF0IHRoZQorICogbWFzayBoaWRlcyB0aGUgaW5jcmVtZW50LiBSZXR1cm4g
MCBpZiBubyBpbmNyZW1lbnQgaXMgcG9zc2libGUuCisgKi8KK3N0YXRpYyBp
bnQgX19pbml0IG5leHRfbWFza2VkX2FkZHJlc3MgKHVuc2lnbmVkIGxvbmcg
KmFkZHJwLCB1bnNpZ25lZCBsb25nIG1hc2spCit7CisgICAgICAgIHVuc2ln
bmVkIGxvbmcgaW5jPTE7CisgICAgICAgIHVuc2lnbmVkIGxvbmcgbmV3dmFs
ID0gKmFkZHJwOworCXdoaWxlIChpbmMgJiBtYXNrKQorCQlpbmMgKz0gaW5j
OworICAgICAgICB3aGlsZSAoaW5jICE9IDApIHsKKwkJbmV3dmFsICs9IGlu
YzsKKwkJbmV3dmFsICY9IH5tYXNrOworCQluZXd2YWwgfD0gKCgqYWRkcnAp
ICYgbWFzayk7CisJCWlmIChuZXd2YWwgPiAqYWRkcnApIHsKKwkJCSphZGRy
cCA9IG5ld3ZhbDsKKwkJCXJldHVybiAxOworCQl9CisJCWRvIHsKKwkJCWlu
YyArPSBpbmM7CisJCX0gd2hpbGUgKGluYyAmIH5tYXNrKTsKKwkJd2hpbGUg
KGluYyAmIG1hc2spCisJCQlpbmMgKz0gaW5jOworICAgICAgICB9CisgICAg
ICAgIHJldHVybiAwOworfQorCisKK3ZvaWQgX19pbml0IGJhZHJhbV9tYXJr
cGFnZXMgKGludCBhcmdjLCB1bnNpZ25lZCBsb25nICphcmd2KSB7CisJdW5z
aWduZWQgbG9uZyBhZGRyLCBtYXNrOworICAgICAgICB3aGlsZSAoYXJnYy0t
ID4gMCkgeworICAgICAgICAgICAgICAgIGFkZHIgPSAqYXJndisrOworICAg
ICAgICAgICAgICAgIG1hc2sgPSAoYXJnYy0tID4gMCkgPyAqYXJndisrIDog
fjBMOworICAgICAgICAgICAgICAgIG1hc2sgfD0gflBBR0VfTUFTSzsJLy8g
T3B0aW1hbGlzYXRpb24KKwkJYWRkciAmPSBtYXNrOwkJLy8gIE5vcm1hbGlz
YXRpb24KKyAgICAgICAgICAgICAgICBkbyB7CisJCQlzdHJ1Y3QgcGFnZSAq
cGcgPSBwaHlzX3RvX3BhZ2UoYWRkcik7CitwcmlsaW51eC0yLjUvbW0vcGFn
ZV9hbGxvYy5jCTIwMDMtMDctMDIgMDE6MTI6MDkuMDAwMDAwMDAwICswMTAw
CkBAIC0xMiw2ICsxMiw3IEBACiAgKiAgWm9uZSBiYWxhbmNpbmcsIEthbm9q
IFNhcmNhciwgU0dJLCBKYW4gMjAwMAogICogIFBlciBjcHUgaG90L2NvbGQg
cGFnZSBsaXN0cywgYnVsayBhbGxvY2F0aW9uLCBNYXJ0aW4gSi4gQmxpZ2gs
IFNlcHQgMjAwMgogICogICAgICAgICAgKGxvdHMgb2YgYml0cyBib3Jyb3dl
ZCBmcm9tIEluZ28gTW9sbmFyICYgQW5kcmV3IE1vcnRvbikKKyAqICBCYWRS
QU0gaGFuZGxpbmcsIFJpY2sgdmFuIFJlaW4sIEZlYiAyMDAxCiAgKi8KIAog
I2luY2x1ZGUgPGxpbnV4L2NvbmZpZy5oPgpAQCAtMTYxNSwzICsxNjE2LDk2
IEBACiAJc2V0dXBfcGVyX3pvbmVfcGFnZXNfbWluKCk7CiAJcmV0dXJuIDA7
CiB9CisKKworI2lmZGVmIENPTkZJR19CQURSQU0KKworLyogR2l2ZW4gYSBw
b2ludGVkLWF0IGFkZHJlc3MgYW5kIGEgbWFzaywgaW5jcmVtZW50IHRoZSBw
YWdlIHNvIHRoYXQgdGhlCisgKiBtYXNrIGhpZGVzIHRoZSBpbmNyZW1lbnQu
IFJldHVybiAwIGlmIG5vIGluY3JlbWVudCBpcyBwb3NzaWJsZS4KKyAqLwor
c3RhdGljIGludCBfX2luaXQgbmV4dF9tYXNrZWRfYWRkcmVzcyAodW5zaWdu
ZWQgbG9uZyAqYWRkcnAsIHVuc2lnbmVkIGxvbmcgbWFzaykKK3sKKyAgICAg
ICAgdW5zaWduZWQgbG9uZyBpbmM9MTsKKyAgICAgICAgdW5zaWduZWQgbG9u
ZyBuZXd2YWwgPSAqYWRkcnA7CisJd2hpbGUgKGluYyAmIG1hc2spCisJCWlu
YyArPSBpbmM7CisgICAgICAgIHdoaWxlIChpbmMgIT0gMCkgeworCQluZXd2
YWwgKz0gaW5jOworCQluZXd2YWwgJj0gfm1hc2s7CisJCW5ld3ZhbCB8PSAo
KCphZGRycCkgJiBtYXNrKTsKKwkJaWYgKG5ld3ZhbCA+ICphZGRycCkgewor
CQkJKmFkZHJwID0gbmV3dmFsOworCQkJcmV0dXJuIDE7CisJCX0KKwkJZG8g
eworCQkJaW5jICs9IGluYzsKKwkJfSB3aGlsZSAoaW5jICYgfm1hc2spOwor
CQl3aGlsZSAoaW5jICYgbWFzaykKKwkJCWluYyArPSBpbmM7CisgICAgICAg
IH0KKyAgICAgICAgcmV0dXJuIDA7Cit9CisKKwordm9pZCBfX2luaXQgYmFk
cmFtX21hcmtwYWdlcyAoaW50IGFyZ2MsIHVuc2lnbmVkIGxvbmcgKmFyZ3Yp
IHsKKwl1bnNpZ25lZCBsb25nIGFkZHIsIG1hc2s7CisgICAgICAgIHdoaWxl
IChhcmdjLS0gPiAwKSB7CisgICAgICAgICAgICAgICAgYWRkciA9ICphcmd2
Kys7CisgICAgICAgICAgICAgICAgbWFzayA9IChhcmdjLS0gPiAwKSA/ICph
cmd2KysgOiB+MEw7CisgICAgICAgICAgICAgICAgbWFzayB8PSB+UEFHRV9N
QVNLOwkvLyBPcHRpbWFsaXNhdGlvbgorCQlhZGRyICY9IG1hc2s7CQkvLyAg
Tm9ybWFsaXNhdGlvbgorICAgICAgICAgICAgICAgIGRvIHsKKwkJCXN0cnVj
dCBwYWdlICpwZyA9IHBoeXNfdG9fcGFnZShhZGRyKTsKK3ByaW50ayAoIiUw
NWx4ICIsIF9fcGEoX192YShhZGRyKSkgPj4gUEFHRV9TSElGVCk7Citwcmlu
dGsgKCI9JTA1bHgvJTA1bHggIiwgcGctbWVtX21hcCwgbWF4X21hcG5yKTsK
KwkJCS8vIGlmIChWQUxJRF9QQUdFKHBnKSkgeworCQkJCWlmIChQYWdlVGVz
dGFuZFNldEJhZCAocGcpKSB7CisJCQkJCXJlc2VydmVfYm9vdG1lbSAoYWRk
ciwgUEFHRV9TSVpFKTsKK3ByaW50ayAoIkJBRCAiKTsKKwkJCQl9CitlbHNl
IHByaW50ayAoIkJGUiAiKTsKKwkJCS8vIH0KKy8vIGVsc2UgcHJpbnRrICgi
SU5WICIpOworICAgICAgICAgICAgICAgIH0gd2hpbGUgKG5leHRfbWFza2Vk
X2FkZHJlc3MgKCZhZGRyLG1hc2spKTsKKyAgICAgICAgfQorfQorCisKKwor
LyoqKioqKioqKioqIENPTkZJR19CQURSQU06IENVU1RPTUlTQUJMRSBTRUNU
SU9OIFNUQVJUUyBIRVJFICoqKioqKioqKioqKioqKioqKi8KKworCisvLyBF
bnRlciB5b3VyIGN1c3RvbSBCYWRSQU0gcGF0dGVybnMgaGVyZSBhcyBwYWly
cyBvZiB1bnNpZ25lZCBsb25nIGludGVnZXJzLgorLy8gRm9yIG1vcmUgaW5m
b3JtYXRpb24gb24gdGhlc2UgRi9NIHBhaXJzLCByZWZlciB0byBEb2N1bWVu
dGF0aW9uL2JhZHJhbS50eHQKKworCitzdGF0aWMgdW5zaWduZWQgbG9uZyBf
X2RldmluaXRkYXRhIGJhZHJhbV9jdXN0b21bXSA9IHsKKwkwLAkvLyBOdW1i
ZXIgb2YgbG9uZ3dvcmRzIHRoYXQgZm9sbG93LCBhcyBGL00gcGFpcnMKK307
CisKKworLyoqKioqKioqKioqIENPTkZJR19CQURSQU06IENVU1RPTUlTQUJM
RSBTRUNUSU9OIEVORFMgSEVSRSAqKioqKioqKioqKioqKioqKioqKi8KKwor
CisKK3N0YXRpYyBpbnQgX19pbml0IGJhZHJhbV9zZXR1cCAoY2hhciAqc3Ry
KQoreworCXVuc2lnbmVkIGxvbmcgb3B0c1szXTsKKwlpZiAoIW1lbV9tYXAp
IEJVRygpOworcHJpbnRrICgiUEFHRV9PRkZTRVQ9MHglMDhseFxuIiwgUEFH
RV9PRkZTRVQpOworcHJpbnRrICgiQmFkUkFNIG9wdGlvbiBpcyAlc1xuIiwg
c3RyKTsKKwlpZiAoKnN0cisrID09ICc9JykKKwkJd2hpbGUgKHN0cj1nZXRf
b3B0aW9ucyAoc3RyLCAzLCAoaW50ICopIG9wdHMpLCAqb3B0cykgeworcHJp
bnRrICgiICAgLS0+IG1hcmtpbmcgMHglMDhseCwgMHglMDhseCAgWyVsZF1c
biIsIG9wdHNbMV0sIG9wdHNbMl0sIG9wdHNbMF0pOworCQkJYmFkcmFtX21h
cmtwYWdlcyAoKm9wdHMsIG9wdHMrMSk7CisJCQlpZiAoKm9wdHM9PTEpCisJ
CQkJYnJlYWs7CisJCX07CisJYmFkcmFtX21hcmtwYWdlcyAoKmJhZHJhbV9j
dXN0b20sIGJhZHJhbV9jdXN0b20rMSk7CisJcmV0dXJuIDA7Cit9CisKK19f
c2V0dXAoImJhZHJhbSIsIGJhZHJhbV9zZXR1cCk7CisKKyNlbmRpZiAvKiBD
T05GSUdfQkFEUkFNICovCisK

--=_courier-15146-1057115966-0001-2--