From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751192AbVKIOaZ (ORCPT ); Wed, 9 Nov 2005 09:30:25 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1751373AbVKIOaY (ORCPT ); Wed, 9 Nov 2005 09:30:24 -0500 Received: from public.id2-vpn.continvity.gns.novell.com ([195.33.99.129]:2100 "EHLO emea1-mh.id2.novell.com") by vger.kernel.org with ESMTP id S1751192AbVKIOaX (ORCPT ); Wed, 9 Nov 2005 09:30:23 -0500 Message-Id: <43721649.76F0.0078.0@novell.com> X-Mailer: Novell GroupWise Internet Agent 7.0 Date: Wed, 09 Nov 2005 15:31:21 +0100 From: "Jan Beulich" To: "Andreas Kleen" Cc: , Subject: [PATCH 39/39] NLKD/x86-64 - Remote Debug Agent References: <43720DAE.76F0.0078.0@novell.com> <43720E2E.76F0.0078.0@novell.com> <43720E72.76F0.0078.0@novell.com> <43720EAF.76F0.0078.0@novell.com> <43720F5E.76F0.0078.0@novell.com> <43720F95.76F0.0078.0@novell.com> <43720FBA.76F0.0078.0@novell.com> <43720FF6.76F0.0078.0@novell.com> <43721024.76F0.0078.0@novell.com> <4372105B.76F0.0078.0@novell.com> <43721119.76F0.0078.0@novell.com> <43721142.76F0.0078.0@novell.com> <43721184.76F0.0078.0@novell.com> <4372135F.76F0.0078.0@novell.com> <4372143F.76F0.0078.0@novell.com> <437214B7.76F0.0078.0@novell.com> <4372156A.76F0.0078.0@novell.com> <43721600.76F0.0078.0@novell.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=__Part785A4429.1__=" Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org This is a MIME message. If you are reading this text, you may want to consider changing to a mail reader or gateway that understands how to properly handle MIME multipart messages. --=__Part785A4429.1__= Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Content-Disposition: inline The x86_64-dependent part of the Remote Debug Agent of NLKD. Signed-Off-By: Jan Beulich (actual patch attached) --=__Part785A4429.1__= Content-Type: application/octet-stream; name="nlkd-rda-x86_64.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="nlkd-rda-x86_64.patch" VGhlIHg4Nl82NC1kZXBlbmRlbnQgcGFydCBvZiB0aGUgUmVtb3RlIERlYnVnIEFnZW50IG9mIE5M S0QuCgpTaWduZWQtT2ZmLUJ5OiBKYW4gQmV1bGljaCA8amJldWxpY2hAbm92ZWxsLmNvbT4KCklu ZGV4OiAyLjYuMTQtbmxrZC9kZWJ1Zy9ubGtkL3JkYS9yZGFBTUQ2NC5jCj09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t IC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAorKysgMi42LjE0 LW5sa2QvZGVidWcvbmxrZC9yZGEvcmRhQU1ENjQuYwkyMDA1LTA2LTI3IDExOjU5OjUxLjAwMDAw MDAwMCArMDIwMApAQCAtMCwwICsxLDQwNiBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgor ICogICBGaWxlIE5hbWU6ICAgICAgcmRhQU1ENjQuYworICogICBDcmVhdGVkIGJ5OiAgICAgSmFu IEJldWxpY2gKKyAqICAgRGF0ZSBjcmVhdGVkOiAgIDI4SmFuMjAwMworICoKKyAqICAgJXZlcnNp b246ICAgICAgIDcgJQorICogICAlZGVyaXZlZF9ieTogICAgamJldWxpY2ggJQorICogICAlZGF0 ZV9tb2RpZmllZDogTW9uIEp1biAyNyAwMzo1OTo0MCAyMDA1ICUKKyAqCisgKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKiovCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgor ICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMDUgTm92ZWxsLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2 ZWQuICAgICAgICAgICAgICAgICAqCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqIFRoaXMgcHJv Z3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgICAg ICAgICAgICAgKgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB2ZXJzaW9uIDIgb2Yg dGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlICAqCisgKiBhcyBwdWJsaXNoZWQgYnkgdGhl IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICoK KyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGlu IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsICAgICAgICAgICAqCisgKiBidXQgV0lU SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiAg ICAgICAgICAgICoKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM QVIgUFVSUE9TRS4gU2VlIHRoZSAgICAgICAgICAgICAgKgorICogR05VIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAq CisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNv cHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlICAgICAgICAgKgorICogYWxvbmcg d2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgY29udGFjdCBOb3ZlbGwsIEluYy4gICAgICAgICAg ICAgICAgICAgICAqCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqIFRvIGNvbnRhY3QgTm92ZWxs IGFib3V0IHRoaXMgZmlsZSBieSBwaHlzaWNhbCBvciBlbGVjdHJvbmljIG1haWwsICAgICAgICAg KgorICogeW91IG1heSBmaW5kIGN1cnJlbnQgY29udGFjdCBpbmZvcm1hdGlvbiBhdCB3d3cubm92 ZWxsLmNvbS4gICAgICAgICAgICAgICAqCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKi8KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqCUZpbGUgRGVzY3Jp cHRpb246CisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjaW5jbHVkZSA8YXNtL2NkZS5o PgorCisjaW5jbHVkZSAicmRhLmgiCisKKyNkZWZpbmUgcl9GVFcgKHJfaW52YWxpZCAtIDEpCisj ZGVmaW5lIHJfRklQIChyX2ludmFsaWQgLSAyKQorI2RlZmluZSByX0ZEUCAocl9pbnZhbGlkIC0g MykKKyNkZWZpbmUgcl9GT1AgKHJfaW52YWxpZCAtIDQpCisKKyNkZWZpbmUgUkVHSU5GTyhnZGIs IHcsIGNscywgaWR4KSBnZGIsCitlbnVtIGdkYl9yZWdpc3RlcnMgeworI2luY2x1ZGUgInJkYUFN RDY0LmluY2wiCisJZ2RiQ09VTlQKK307CisjdW5kZWYgUkVHSU5GTworCit1bmlvbiBmcHJlZ191 IHsKKwlmbG9hdDgwX3QgcmF3OworCXN0cnVjdCB7CisJCXVpbnQ2NF90IG1hbnQ7CisJCXVpbnQx Nl90IHNpZ25fZXhwOworCX07Cit9OworCitjZGVCb29sX3QgcmRhU2V0UEMoUmRhU2Vzc2lvblN0 YXRlKnN0YXRlLCB1aW50cHRyX3QgYWRkcmVzcykgeworCWlmKCFjZGVXcml0ZVJJUChzdGF0ZS0+ Y3VycmVudEZyYW1lLCBhZGRyZXNzKSkgeworCQlyZGFFcnJvcihzdGF0ZSwgUkRBX0VJTlZBTCk7 CisJCXJldHVybiBjZGVGYWxzZTsKKwl9CisJcmV0dXJuIGNkZVRydWU7Cit9CisKK3ZvaWQgcmRh UHV0RnJhbWVJbmZvKFJkYVNlc3Npb25TdGF0ZSpzdGF0ZSkgeworCWNvbnN0IGZ0YUZ1bGxJbnRl cnJ1cHRpb25DdHhfdCpmcmFtZSA9IHN0YXRlLT5jdXJyZW50RnJhbWU7CisJaW50IHNpZ3ZhbDsK Kwl1aW50NjRfdCB2YWx1ZTsKKworCXN3aXRjaChjZGVHZXRJbnRlcnJ1cHRpb25UeXBlKGZyYW1l LCBOVUxMKSkgeworCWRlZmF1bHQ6CisJCXNpZ3ZhbCA9IDI7CisJCWJyZWFrOworCWNhc2UgQU1E NjRfSUxMRUdBTF9PUENPREU6CisJCXNpZ3ZhbCA9IDQ7CisJCWJyZWFrOworCWNhc2UgQU1ENjRf REVCVUc6CisJY2FzZSBBTUQ2NF9CUkVBS1BPSU5UOgorCQlzaWd2YWwgPSA1OworCQlicmVhazsK KwljYXNlIEFNRDY0X1JTVkRfMDk6CisJY2FzZSBBTUQ2NF9SU1ZEXzBGOgorCWNhc2UgQU1ENjRf UlNWRF8xNDoKKwljYXNlIEFNRDY0X1JTVkRfMTU6CisJY2FzZSBBTUQ2NF9SU1ZEXzE2OgorCWNh c2UgQU1ENjRfUlNWRF8xNzoKKwljYXNlIEFNRDY0X1JTVkRfMTg6CisJY2FzZSBBTUQ2NF9SU1ZE XzE5OgorCWNhc2UgQU1ENjRfUlNWRF8xQToKKwljYXNlIEFNRDY0X1JTVkRfMUI6CisJY2FzZSBB TUQ2NF9SU1ZEXzFDOgorCWNhc2UgQU1ENjRfUlNWRF8xRDoKKwljYXNlIEFNRDY0X1JTVkRfMUU6 CisJY2FzZSBBTUQ2NF9SU1ZEXzFGOgorCQlzaWd2YWwgPSA2OworCQlicmVhazsKKwljYXNlIEFN RDY0X0RPVUJMRV9GQVVMVDoKKwkJc2lndmFsID0gNzsKKwkJYnJlYWs7CisJY2FzZSBBTUQ2NF9E SVZJREVfRVJST1I6CisJY2FzZSBBTUQ2NF9ERVZJQ0VfTk9UX0FWQUlMQUJMRToKKwljYXNlIEFN RDY0X0ZQX0VSUk9SOgorCWNhc2UgQU1ENjRfU0lNRF9GUF9FUlJPUjoKKwkJc2lndmFsID0gODsK KwkJYnJlYWs7CisJY2FzZSBBTUQ2NF9BTElHTk1FTlRfQ0hFQ0s6CisJCXNpZ3ZhbCA9IDEwOwor CQlicmVhazsKKwljYXNlIEFNRDY0X0lOVkFMSURfVFNTOgorCWNhc2UgQU1ENjRfU0VHTUVOVF9O T1RfUFJFU0VOVDoKKwljYXNlIEFNRDY0X0dFTkVSQUxfUFJPVEVDVElPTl9GQVVMVDoKKwljYXNl IEFNRDY0X1BBR0VfRkFVTFQ6CisJCXNpZ3ZhbCA9IDExOworCQlicmVhazsKKwljYXNlIEFNRDY0 X09WRVJGTE9XOgorCWNhc2UgQU1ENjRfQk9VTkRTX0NIRUNLOgorCWNhc2UgQU1ENjRfU1RBQ0tf RkFVTFQ6CisJCXNpZ3ZhbCA9IDE2OworCQlicmVhazsKKwl9CisJcmRhUHV0SGV4KHN0YXRlLCBz aWd2YWwsIDEpOworCXJkYVB1dEhleChzdGF0ZSwgUklQLCAwKTsKKwlyZGFQdXRDaGFyKHN0YXRl LCAnOicpOworCXJkYVB1dEhleChzdGF0ZSwgY2RlUmVhZFJJUChmcmFtZSksIC04KTsKKwlyZGFQ dXRDaGFyKHN0YXRlLCAnOycpOworCWlmKGNkZVJlYWRHUihyZWdfcnNwLCBmcmFtZSwgJnZhbHVl KSkgeworCQlyZGFQdXRIZXgoc3RhdGUsIFJTUCwgMCk7CisJCXJkYVB1dENoYXIoc3RhdGUsICc6 Jyk7CisJCXJkYVB1dEhleChzdGF0ZSwgdmFsdWUsIC04KTsKKwkJcmRhUHV0Q2hhcihzdGF0ZSwg JzsnKTsKKwl9CisJaWYoY2RlUmVhZEdSKHJlZ19yYnAsIGZyYW1lLCAmdmFsdWUpKSB7CisJCXJk YVB1dEhleChzdGF0ZSwgUkJQLCAwKTsKKwkJcmRhUHV0Q2hhcihzdGF0ZSwgJzonKTsKKwkJcmRh UHV0SGV4KHN0YXRlLCB2YWx1ZSwgLTgpOworCQlyZGFQdXRDaGFyKHN0YXRlLCAnOycpOworCX0K K30KKworI2RlZmluZSBSRUdJTkZPKGdkYiwgdywgY2xzLCBpZHgpIHtyXyMjY2xzLCBpZHh9LAor c3RhdGljIGNvbnN0IHN0cnVjdCByZWdJbmZvIHsKKwlzaWduZWQgY2hhciB0eXBlOworCXVuc2ln bmVkIGNoYXIgaW5kZXg7Cit9IHJlZ0luZm9bXSA9IHsKKyNpbmNsdWRlICJyZGFBTUQ2NC5pbmNs IgorfTsKKyN1bmRlZiBSRUdJTkZPCisKK3ZvaWQgcmRhR2V0UmVnaXN0ZXJzKFJkYVNlc3Npb25T dGF0ZSpzdGF0ZSwKKwkJY29uc3QgY2hhcippbnB1dCwKKwkJc2l6ZV90IGlucHV0U2l6ZSkgewor CXVuc2lnbmVkIGk7CisKKwlpZihzdGF0ZS0+Y3VycmVudEZyYW1lID09IE5VTEwpIHsKKwkJcmRh RXJyb3Ioc3RhdGUsIFJEQV9FQUdBSU4pOworCQlyZXR1cm47CisJfQorCWlmKGlucHV0U2l6ZSAh PSAwKSB7CisJCXJkYUVycm9yKHN0YXRlLCBSREFfRUlOVkFMKTsKKwkJcmV0dXJuOworCX0KKwlm b3IoaSA9IDA7IGkgPCBnZGJDT1VOVDsgKytpKSB7CisJCXN3aXRjaChyZWdJbmZvW2ldLnR5cGUp IHsKKwkJY2FzZSByX3JpcDoKKwkJCXJkYVB1dEhleChzdGF0ZSwgY2RlUmVhZFJJUChzdGF0ZS0+ Y3VycmVudEZyYW1lKSwgLTgpOworCQkJYnJlYWs7CisJCWNhc2Ugcl9yZmxhZ3M6CisJCQlyZGFQ dXRIZXgoc3RhdGUsIGNkZVJlYWRSRkxBR1Moc3RhdGUtPmN1cnJlbnRGcmFtZSksIC00KTsKKwkJ CWJyZWFrOworCQljYXNlIHJfZ2VuZXJhbDogeworCQkJCXVpbnQ2NF90IHZhbHVlOworCisJCQkJ aWYoIWNkZVJlYWRHUihyZWdJbmZvW2ldLmluZGV4LCBzdGF0ZS0+Y3VycmVudEZyYW1lLCAmdmFs dWUpKQorCQkJCQl2YWx1ZSA9IDA7CisJCQkJcmRhUHV0SGV4KHN0YXRlLCB2YWx1ZSwgLTgpOwor CQkJfQorCQkJYnJlYWs7CisJCWNhc2Ugcl9zZWxlY3RvcjogeworCQkJCXVpbnQxNl90IHZhbHVl OworCisJCQkJaWYoIWNkZVJlYWRTUihyZWdJbmZvW2ldLmluZGV4LCBzdGF0ZS0+Y3VycmVudEZy YW1lLCAmdmFsdWUsIE5VTEwpKQorCQkJCQl2YWx1ZSA9IDA7CisJCQkJcmRhUHV0SGV4KHN0YXRl LCB2YWx1ZSwgLTQpOworCQkJfQorCQkJYnJlYWs7CisJCWNhc2Ugcl9mbG9hdGluZzogeworCQkJ CXVuaW9uIGZwcmVnX3UgdmFsdWU7CisKKwkJCQlpZighY2RlUmVhZEZSKHJlZ0luZm9baV0uaW5k ZXgsIHN0YXRlLT5jdXJyZW50RnJhbWUsICZ2YWx1ZS5yYXcpKQorCQkJCQlkYmdaZXJvTWVtKCZ2 YWx1ZSwgc2l6ZW9mKHZhbHVlKSk7CisJCQkJcmRhUHV0SGV4KHN0YXRlLCB2YWx1ZS5tYW50LCAt OCk7CisJCQkJcmRhUHV0SGV4KHN0YXRlLCB2YWx1ZS5zaWduX2V4cCwgLTIpOworCQkJfQorCQkJ YnJlYWs7CisJCWNhc2Ugcl9mY3c6IHsKKwkJCQl1aW50MTZfdCB2YWx1ZTsKKworCQkJCWlmKCFj ZGVSZWFkRnB1Q29udHJvbFdvcmQoc3RhdGUtPmN1cnJlbnRGcmFtZSwgJnZhbHVlKSkKKwkJCQkJ dmFsdWUgPSAwOworCQkJCXJkYVB1dEhleChzdGF0ZSwgdmFsdWUsIC00KTsKKwkJCX0KKwkJCWJy ZWFrOworCQljYXNlIHJfZnN3OiB7CisJCQkJdWludDE2X3QgdmFsdWU7CisKKwkJCQlpZighY2Rl UmVhZEZwdVN0YXR1c1dvcmQoc3RhdGUtPmN1cnJlbnRGcmFtZSwgJnZhbHVlKSkKKwkJCQkJdmFs dWUgPSAwOworCQkJCXJkYVB1dEhleChzdGF0ZSwgdmFsdWUsIC00KTsKKwkJCX0KKwkJCWJyZWFr OworCQljYXNlIHJfRlRXOiB7CisJCQkJdWludDE2X3QgdmFsdWU7CisKKwkJCQlpZighY2RlUmVh ZEZwdVRhZ1dvcmQoc3RhdGUtPmN1cnJlbnRGcmFtZSwgJnZhbHVlKSkKKwkJCQkJdmFsdWUgPSAw OworCQkJCXJkYVB1dEhleChzdGF0ZSwgdmFsdWUsIC00KTsKKwkJCX0KKwkJCWJyZWFrOworCQlj YXNlIHJfRklQOiB7CisJCQkJc3RydWN0IENkZUFkZHJlc3MgYWRkcmVzczsKKworCQkJCWlmKCFj ZGVSZWFkRnB1Q29kZVBvaW50ZXIoc3RhdGUtPmN1cnJlbnRGcmFtZSwgJmFkZHJlc3MpKQorCQkJ CQlkYmdaZXJvTWVtKCZhZGRyZXNzLCBzaXplb2YoYWRkcmVzcykpOworCQkJCXJkYVB1dEhleChz dGF0ZSwgcmVnSW5mb1tpXS5pbmRleCA/IGFkZHJlc3Muc2VsZWN0b3IgOiBhZGRyZXNzLm9mZnNl dCwgLTQpOworCQkJfQorCQkJYnJlYWs7CisJCWNhc2Ugcl9GRFA6IHsKKwkJCQlzdHJ1Y3QgQ2Rl QWRkcmVzcyBhZGRyZXNzOworCisJCQkJaWYoIWNkZVJlYWRGcHVEYXRhUG9pbnRlcihzdGF0ZS0+ Y3VycmVudEZyYW1lLCAmYWRkcmVzcykpCisJCQkJCWRiZ1plcm9NZW0oJmFkZHJlc3MsIHNpemVv ZihhZGRyZXNzKSk7CisJCQkJcmRhUHV0SGV4KHN0YXRlLCByZWdJbmZvW2ldLmluZGV4ID8gYWRk cmVzcy5zZWxlY3RvciA6IGFkZHJlc3Mub2Zmc2V0LCAtNCk7CisJCQl9CisJCQlicmVhazsKKwkJ Y2FzZSByX0ZPUDogeworCQkJCXVpbnQxNl90IHZhbHVlOworCisJCQkJaWYoIWNkZVJlYWRGcHVP cGNvZGUoc3RhdGUtPmN1cnJlbnRGcmFtZSwgJnZhbHVlKSkKKwkJCQkJdmFsdWUgPSAwOworCQkJ CXJkYVB1dEhleChzdGF0ZSwgdmFsdWUsIC00KTsKKwkJCX0KKwkJCWJyZWFrOworCQljYXNlIHJf eG1tOgorCQkJaWYoY2RlV3JpdGVNWENTUihOVUxMLCAwKSkgeworCQkJCXhtbXJlZ190IHZhbHVl OworCisJCQkJaWYoIWNkZVJlYWRYTU0ocmVnSW5mb1tpXS5pbmRleCwgc3RhdGUtPmN1cnJlbnRG cmFtZSwgJnZhbHVlKSkKKwkJCQkJZGJnWmVyb01lbSgmdmFsdWUsIHNpemVvZih2YWx1ZSkpOwor CQkJCXJkYVB1dEhleChzdGF0ZSwgdmFsdWUucVswXSwgLTgpOworCQkJCXJkYVB1dEhleChzdGF0 ZSwgdmFsdWUucVsxXSwgLTgpOworCQkJfQorCQkJYnJlYWs7CisJCWNhc2Ugcl9teGNzcjoKKwkJ CWlmKGNkZVdyaXRlTVhDU1IoTlVMTCwgMCkpIHsKKwkJCQl1aW50MzJfdCB2YWx1ZTsKKworCQkJ CWlmKCFjZGVSZWFkTVhDU1Ioc3RhdGUtPmN1cnJlbnRGcmFtZSwgJnZhbHVlKSkKKwkJCQkJZGJn WmVyb01lbSgmdmFsdWUsIHNpemVvZih2YWx1ZSkpOworCQkJCXJkYVB1dEhleChzdGF0ZSwgdmFs dWUsIC00KTsKKwkJCX0KKwkJCWJyZWFrOworCQlkZWZhdWx0OgorCQkJUlRBU1NFUlQoIShyZWdJ bmZvICsgaSkpOworCQkJYnJlYWs7CisJCX0KKwl9Cit9CisKK3N0YXRpYyBjZGVCb29sX3Qgc2V0 UmVnKFJkYVNlc3Npb25TdGF0ZSpzdGF0ZSwKKwkJY29uc3Qgc3RydWN0IHJlZ0luZm8qaW5mbywK KwkJY29uc3QgY2hhcioqcElucHV0KSB7CisJY2RlQm9vbF90IHJlc3VsdCA9IGNkZUZhbHNlOwor CisJc3dpdGNoKGluZm8tPnR5cGUpIHsKKwkJdWludDY0X3QgdmFsdWU7CisKKwljYXNlIHJfcmlw OgorCQl2YWx1ZSA9IHJkYUdldEhleCgqcElucHV0LCBwSW5wdXQsIC04KTsKKwkJaWYoKnBJbnB1 dCAhPSBOVUxMKQorCQkJcmVzdWx0ID0gY2RlV3JpdGVSSVAoc3RhdGUtPmN1cnJlbnRGcmFtZSwg dmFsdWUpOworCQlicmVhazsKKwljYXNlIHJfcmZsYWdzOgorCQl2YWx1ZSA9IHJkYUdldEhleCgq cElucHV0LCBwSW5wdXQsIC00KTsKKwkJaWYoKnBJbnB1dCAhPSBOVUxMKQorCQkJcmVzdWx0ID0g Y2RlV3JpdGVSRkxBR1Moc3RhdGUtPmN1cnJlbnRGcmFtZSwgdmFsdWUpOworCQlicmVhazsKKwlj YXNlIHJfZ2VuZXJhbDoKKwkJdmFsdWUgPSByZGFHZXRIZXgoKnBJbnB1dCwgcElucHV0LCAtOCk7 CisJCWlmKCpwSW5wdXQgIT0gTlVMTCkKKwkJCXJlc3VsdCA9IGNkZVdyaXRlR1IoaW5mby0+aW5k ZXgsIHN0YXRlLT5jdXJyZW50RnJhbWUsIHZhbHVlKTsKKwkJYnJlYWs7CisJY2FzZSByX3NlbGVj dG9yOgorCQl2YWx1ZSA9IHJkYUdldEhleCgqcElucHV0LCBwSW5wdXQsIC00KTsKKwkJaWYoKnBJ bnB1dCAhPSBOVUxMKQorCQkJcmVzdWx0ID0gKHZhbHVlID09ICh1aW50MTZfdCl2YWx1ZSAmJiBj ZGVXcml0ZVNSKGluZm8tPmluZGV4LCBzdGF0ZS0+Y3VycmVudEZyYW1lLCAodWludDE2X3QpdmFs dWUsIE5VTEwpKTsKKwkJYnJlYWs7CisJY2FzZSByX2Zsb2F0aW5nOiB7CisJCQl1bmlvbiBmcHJl Z191IHZhbHVlOworCisJCQl2YWx1ZS5tYW50ID0gcmRhR2V0SGV4KCpwSW5wdXQsIHBJbnB1dCwg LTgpOworCQkJaWYoKnBJbnB1dCAhPSBOVUxMKQorCQkJCXZhbHVlLnNpZ25fZXhwID0gKHVpbnQx Nl90KXJkYUdldEhleCgqcElucHV0LCBwSW5wdXQsIC0yKTsKKwkJCWlmKCpwSW5wdXQgIT0gTlVM TCkKKwkJCQlyZXN1bHQgPSBjZGVXcml0ZUZSKGluZm8tPmluZGV4LCBzdGF0ZS0+Y3VycmVudEZy YW1lLCAmdmFsdWUucmF3KTsKKwkJfQorCQlicmVhazsKKwljYXNlIHJfZmN3OgorCQl2YWx1ZSA9 IHJkYUdldEhleCgqcElucHV0LCBwSW5wdXQsIC00KTsKKwkJaWYoKnBJbnB1dCAhPSBOVUxMKQor CQkJcmVzdWx0ID0gKHZhbHVlID09ICh1aW50MTZfdCl2YWx1ZSAmJiBjZGVXcml0ZUZwdUNvbnRy b2xXb3JkKHN0YXRlLT5jdXJyZW50RnJhbWUsICh1aW50MTZfdCl2YWx1ZSkpOworCQlicmVhazsK KwljYXNlIHJfZnN3OgorCQl2YWx1ZSA9IHJkYUdldEhleCgqcElucHV0LCBwSW5wdXQsIC00KTsK KwkJaWYoKnBJbnB1dCAhPSBOVUxMKQorCQkJcmVzdWx0ID0gKHZhbHVlID09ICh1aW50MTZfdCl2 YWx1ZSAmJiBjZGVXcml0ZUZwdVN0YXR1c1dvcmQoc3RhdGUtPmN1cnJlbnRGcmFtZSwgKHVpbnQx Nl90KXZhbHVlKSk7CisJCWJyZWFrOworCWNhc2Ugcl9GVFc6CisJCXZhbHVlID0gcmRhR2V0SGV4 KCpwSW5wdXQsIHBJbnB1dCwgLTQpOworCQlpZigqcElucHV0ICE9IE5VTEwpCisJCQlyZXN1bHQg PSAodmFsdWUgPT0gKHVpbnQxNl90KXZhbHVlICYmIGNkZVdyaXRlRnB1VGFnV29yZChzdGF0ZS0+ Y3VycmVudEZyYW1lLCAodWludDE2X3QpdmFsdWUpKTsKKwkJYnJlYWs7CisJY2FzZSByX0ZJUDoK KwljYXNlIHJfRkRQOgorCWNhc2Ugcl9GT1A6CisJCXJlc3VsdCA9IGNkZUZhbHNlOworCQlicmVh azsKKwljYXNlIHJfeG1tOiB7CisJCQl4bW1yZWdfdCB2YWx1ZTsKKworCQkJdmFsdWUucVswXSA9 IHJkYUdldEhleCgqcElucHV0LCBwSW5wdXQsIC04KTsKKwkJCWlmKCpwSW5wdXQgIT0gTlVMTCkK KwkJCQl2YWx1ZS5xWzFdID0gcmRhR2V0SGV4KCpwSW5wdXQsIHBJbnB1dCwgLTgpOworCQkJaWYo KnBJbnB1dCAhPSBOVUxMKQorCQkJCXJlc3VsdCA9IGNkZVdyaXRlWE1NKGluZm8tPmluZGV4LCBz dGF0ZS0+Y3VycmVudEZyYW1lLCAmdmFsdWUpOworCQl9CisJCWJyZWFrOworCWNhc2Ugcl9teGNz cjoKKwkJdmFsdWUgPSByZGFHZXRIZXgoKnBJbnB1dCwgcElucHV0LCAtNCk7CisJCWlmKCpwSW5w dXQgIT0gTlVMTCkKKwkJCXJlc3VsdCA9IGNkZVdyaXRlTVhDU1Ioc3RhdGUtPmN1cnJlbnRGcmFt ZSwgKHVpbnQzMl90KXZhbHVlKTsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJUlRBU1NFUlQoIWlu Zm8pOworCQlicmVhazsKKwl9CisJaWYoKnBJbnB1dCA9PSBOVUxMKSB7CisJCXJkYUVycm9yKHN0 YXRlLCBSREFfRUZPUk1BVCk7CisJCXJlc3VsdCA9IGNkZUZhbHNlOworCX0KKwllbHNlIGlmKCFy ZXN1bHQpCisJCXJkYUVycm9yKHN0YXRlLCBSREFfRUlOVkFMKTsKKwlyZXR1cm4gcmVzdWx0Owor fQorCit2b2lkIHJkYVNldFJlZ2lzdGVycyhSZGFTZXNzaW9uU3RhdGUqc3RhdGUsCisJCWNvbnN0 IGNoYXIqaW5wdXQsCisJCXNpemVfdCBpbnB1dFNpemUpIHsKKwl1bnNpZ25lZCBpbmRleDsKKwlj b25zdCBjaGFyKmVuZDsKKworCWlmKHN0YXRlLT5jdXJyZW50RnJhbWUgPT0gTlVMTCkgeworCQly ZGFFcnJvcihzdGF0ZSwgUkRBX0VBR0FJTik7CisJCXJldHVybjsKKwl9CisJaWYoaW5wdXRTaXpl ICYgMSkgeworCQlyZGFFcnJvcihzdGF0ZSwgUkRBX0VJTlZBTCk7CisJCXJldHVybjsKKwl9CisJ Zm9yKGluZGV4ID0gMCwgZW5kID0gaW5wdXQ7IGluZGV4IDwgZ2RiQ09VTlQ7ICsraW5kZXgpIHsK KwkJaWYoIXNldFJlZyhzdGF0ZSwgcmVnSW5mbyArIGluZGV4LCAmZW5kKSkKKwkJCXJldHVybjsK KwkJaWYoaW5wdXQgKyBpbnB1dFNpemUgPT0gZW5kKQorCQkJYnJlYWs7CisJfQorCWlmKGluZGV4 ID09IGdkYkNPVU5UKQorCQlyZGFPSyhzdGF0ZSk7CisJZWxzZQorCQlyZGFFcnJvcihzdGF0ZSwg UkRBX0VQQVJUSUFMKTsKK30KKwordm9pZCByZGFTZXRSZWdpc3RlcihSZGFTZXNzaW9uU3RhdGUq c3RhdGUsCisJCWNvbnN0IGNoYXIqaW5wdXQsCisJCXNpemVfdCBpbnB1dFNpemUpIHsKKwljb25z dCBjaGFyKmVuZDsKKwl1aW50cHRyX3QgaW5kZXggPSByZGFHZXRIZXgoaW5wdXQsICZlbmQsIDAp OworCisJaWYoaW5kZXggPj0gZ2RiQ09VTlQpIHsKKwkJcmRhRXJyb3Ioc3RhdGUsIFJEQV9FSU5W QUwpOworCQlyZXR1cm47CisJfQorCWlmKHN0YXRlLT5jdXJyZW50RnJhbWUgPT0gTlVMTCkgewor CQlyZGFFcnJvcihzdGF0ZSwgUkRBX0VBR0FJTik7CisJCXJldHVybjsKKwl9CisJaWYoIXNldFJl ZyhzdGF0ZSwgcmVnSW5mbyArIGluZGV4LCAmaW5wdXQpKQorCQlyZXR1cm47CisJaWYoaW5wdXQg KyBpbnB1dFNpemUgPT0gZW5kKQorCQlyZGFPSyhzdGF0ZSk7CisJZWxzZQorCQlyZGFFcnJvcihz dGF0ZSwgUkRBX0VGT1JNQVQpOworfQpJbmRleDogMi42LjE0LW5sa2QvZGVidWcvbmxrZC9yZGEv cmRhQU1ENjQuaW5jbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDow MC4wMDAwMDAwMDAgKzAwMDAKKysrIDIuNi4xNC1ubGtkL2RlYnVnL25sa2QvcmRhL3JkYUFNRDY0 LmluY2wJMjAwNS0wNi0yNyAxMjowMDoxNy4wMDAwMDAwMDAgKzAyMDAKQEAgLTAsMCArMSw5MiBA QAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogICBGaWxlIE5hbWU6ICAgICAgcmRhQU1E NjQuaW5jbAorICogICBDcmVhdGVkIGJ5OiAgICAgSmFuIEJldWxpY2gKKyAqICAgRGF0ZSBjcmVh dGVkOiAgIDI4SmFuMjAwMworICoKKyAqICAgJXZlcnNpb246ICAgICAgIDMgJQorICogICAlZGVy aXZlZF9ieTogICAgamJldWxpY2ggJQorICogICAlZGF0ZV9tb2RpZmllZDogTW9uIEp1biAyNyAw NDowMDowNSAyMDA1ICUKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICogQ29weXJpZ2h0IChjKSAyMDAzLTIw MDUgTm92ZWxsLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAqCisg KiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5 b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgICAgICAgICAgICAgKgorICogbW9kaWZ5IGl0 IHVuZGVyIHRoZSB0ZXJtcyBvZiB2ZXJzaW9uIDIgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlICAqCisgKiBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv bi4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgor ICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi ZSB1c2VmdWwsICAgICAgICAgICAqCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiAgICAgICAgICAgICoKKyAqIE1FUkNIQU5U QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZSAgICAg ICAgICAgICAgKgorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls cy4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoK KyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1 YmxpYyBMaWNlbnNlICAgICAgICAgKgorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5v dCwgY29udGFjdCBOb3ZlbGwsIEluYy4gICAgICAgICAgICAgICAgICAgICAqCisgKiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICoKKyAqIFRvIGNvbnRhY3QgTm92ZWxsIGFib3V0IHRoaXMgZmlsZSBieSBwaHlz aWNhbCBvciBlbGVjdHJvbmljIG1haWwsICAgICAgICAgKgorICogeW91IG1heSBmaW5kIGN1cnJl bnQgY29udGFjdCBpbmZvcm1hdGlvbiBhdCB3d3cubm92ZWxsLmNvbS4gICAgICAgICAgICAgICAq CisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKgorICoKKyAqCUZpbGUgRGVzY3JpcHRpb246CisgKgorICoqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqLworCitSRUdJTkZPKFJBWCwgICAgOCwgZ2VuZXJhbCwgIHJlZ19yYXgpCitSRUdJ TkZPKFJDWCwgICAgOCwgZ2VuZXJhbCwgIHJlZ19yY3gpCitSRUdJTkZPKFJEWCwgICAgOCwgZ2Vu ZXJhbCwgIHJlZ19yZHgpCitSRUdJTkZPKFJCWCwgICAgOCwgZ2VuZXJhbCwgIHJlZ19yYngpCitS RUdJTkZPKFJTUCwgICAgOCwgZ2VuZXJhbCwgIHJlZ19yc3ApCitSRUdJTkZPKFJCUCwgICAgOCwg Z2VuZXJhbCwgIHJlZ19yYnApCitSRUdJTkZPKFJTSSwgICAgOCwgZ2VuZXJhbCwgIHJlZ19yc2kp CitSRUdJTkZPKFJESSwgICAgOCwgZ2VuZXJhbCwgIHJlZ19yZGkpCitSRUdJTkZPKFI4LCAgICAg OCwgZ2VuZXJhbCwgIHJlZ19yOCkKK1JFR0lORk8oUjksICAgICA4LCBnZW5lcmFsLCAgcmVnX3I5 KQorUkVHSU5GTyhSMTAsICAgIDgsIGdlbmVyYWwsICByZWdfcjEwKQorUkVHSU5GTyhSMTEsICAg IDgsIGdlbmVyYWwsICByZWdfcjExKQorUkVHSU5GTyhSMTIsICAgIDgsIGdlbmVyYWwsICByZWdf cjEyKQorUkVHSU5GTyhSMTMsICAgIDgsIGdlbmVyYWwsICByZWdfcjEzKQorUkVHSU5GTyhSMTQs ICAgIDgsIGdlbmVyYWwsICByZWdfcjE0KQorUkVHSU5GTyhSMTUsICAgIDgsIGdlbmVyYWwsICBy ZWdfcjE1KQorUkVHSU5GTyhSSVAsICAgIDgsIHJpcCwgICAgICAwKQorUkVHSU5GTyhFRkxBR1Ms IDQsIHJmbGFncywgICAwKQorUkVHSU5GTyhEUywgICAgIDQsIHNlbGVjdG9yLCBzcmVnX2RzKQor UkVHSU5GTyhFUywgICAgIDQsIHNlbGVjdG9yLCBzcmVnX2VzKQorUkVHSU5GTyhGUywgICAgIDQs IHNlbGVjdG9yLCBzcmVnX2ZzKQorUkVHSU5GTyhHUywgICAgIDQsIHNlbGVjdG9yLCBzcmVnX2dz KQorUkVHSU5GTyhTVDAsICAgMTAsIGZsb2F0aW5nLCBzdDApCitSRUdJTkZPKFNUMSwgICAxMCwg ZmxvYXRpbmcsIHN0MSkKK1JFR0lORk8oU1QyLCAgIDEwLCBmbG9hdGluZywgc3QyKQorUkVHSU5G TyhTVDMsICAgMTAsIGZsb2F0aW5nLCBzdDMpCitSRUdJTkZPKFNUNCwgICAxMCwgZmxvYXRpbmcs IHN0NCkKK1JFR0lORk8oU1Q1LCAgIDEwLCBmbG9hdGluZywgc3Q1KQorUkVHSU5GTyhTVDYsICAg MTAsIGZsb2F0aW5nLCBzdDYpCitSRUdJTkZPKFNUNywgICAxMCwgZmxvYXRpbmcsIHN0NykKK1JF R0lORk8oRkNUUkwsICA0LCBmY3csICAgICAgMCkKK1JFR0lORk8oRlNUQVQsICA0LCBmc3csICAg ICAgMCkKK1JFR0lORk8oRlRBRywgICA0LCBGVFcsICAgICAgMCkKK1JFR0lORk8oRklTRUcsICA0 LCBGSVAsICAgICAgMSkKK1JFR0lORk8oRklPRkYsICA0LCBGSVAsICAgICAgMCkKK1JFR0lORk8o Rk9TRUcsICA0LCBGRFAsICAgICAgMSkKK1JFR0lORk8oRk9PRkYsICA0LCBGRFAsICAgICAgMCkK K1JFR0lORk8oRk9QLCAgICA0LCBGT1AsICAgICAgMCkKK1JFR0lORk8oWE1NMCwgIDE2LCB4bW0s ICAgICAgMCkKK1JFR0lORk8oWE1NMSwgIDE2LCB4bW0sICAgICAgMSkKK1JFR0lORk8oWE1NMiwg IDE2LCB4bW0sICAgICAgMikKK1JFR0lORk8oWE1NMywgIDE2LCB4bW0sICAgICAgMykKK1JFR0lO Rk8oWE1NNCwgIDE2LCB4bW0sICAgICAgNCkKK1JFR0lORk8oWE1NNSwgIDE2LCB4bW0sICAgICAg NSkKK1JFR0lORk8oWE1NNiwgIDE2LCB4bW0sICAgICAgNikKK1JFR0lORk8oWE1NNywgIDE2LCB4 bW0sICAgICAgNykKK1JFR0lORk8oWE1NOCwgIDE2LCB4bW0sICAgICAgOCkKK1JFR0lORk8oWE1N OSwgIDE2LCB4bW0sICAgICAgOSkKK1JFR0lORk8oWE1NMTAsIDE2LCB4bW0sICAgICAgMTApCitS RUdJTkZPKFhNTTExLCAxNiwgeG1tLCAgICAgIDExKQorUkVHSU5GTyhYTU0xMiwgMTYsIHhtbSwg ICAgICAxMikKK1JFR0lORk8oWE1NMTMsIDE2LCB4bW0sICAgICAgMTMpCitSRUdJTkZPKFhNTTE0 LCAxNiwgeG1tLCAgICAgIDE0KQorUkVHSU5GTyhYTU0xNSwgMTYsIHhtbSwgICAgICAxNSkKK1JF R0lORk8oTVhDU1IsICA0LCBteGNzciwgICAgMCkK --=__Part785A4429.1__=--