From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S264638AbTGBDEN (ORCPT ); Tue, 1 Jul 2003 23:04:13 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S264635AbTGBDEN (ORCPT ); Tue, 1 Jul 2003 23:04:13 -0400 Received: from web60003.mail.yahoo.com ([216.109.116.226]:18800 "HELO web60003.mail.yahoo.com") by vger.kernel.org with SMTP id S264638AbTGBDDv (ORCPT ); Tue, 1 Jul 2003 23:03:51 -0400 Message-ID: <20030702031815.33020.qmail@web60003.mail.yahoo.com> Date: Wed, 2 Jul 2003 04:18:15 +0100 (BST) From: =?iso-8859-1?q?Steven=20Newbury?= Subject: [PATCH] BadRAM for 2.5.73-mm2 To: linux-kernel MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="0-619139592-1057115895=:31190" Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org --0-619139592-1057115895=:31190 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit Content-Id: Content-Disposition: inline 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 --0-619139592-1057115895=:31190 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 --0-619139592-1057115895=:31190--