From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1161776AbXDXOed (ORCPT ); Tue, 24 Apr 2007 10:34:33 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1161780AbXDXOed (ORCPT ); Tue, 24 Apr 2007 10:34:33 -0400 Received: from [80.68.207.6] ([80.68.207.6]:42677 "EHLO smtp.unbit.it" rhost-flags-FAIL-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1161776AbXDXOec (ORCPT ); Tue, 24 Apr 2007 10:34:32 -0400 Subject: [ANNOUNCE] UidBind LSM 0.2 From: Roberto De Ioris Reply-To: roberto@unbit.it To: linux-security-module@vger.kernel.org, linux-kernel Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-BTXE6KFk81eNoqAB45vL" Organization: UnBit Date: Tue, 24 Apr 2007 16:34:22 +0200 Message-Id: <1177425262.6547.24.camel@hagrid> Mime-Version: 1.0 X-Mailer: Evolution 2.10.1 Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org --=-BTXE6KFk81eNoqAB45vL Content-Type: multipart/mixed; boundary="=-2OwEu0bQg3VzQTtKfAby" --=-2OwEu0bQg3VzQTtKfAby Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Hi all, this is the second release for UidBind LSM: http://projects.unbit.it/uidbind/ UidBind allows call to bind() function only to the uid defined in a configfs tree. It is now possible to specify different uid (for the same port) on different ipv4 addresses: mkdir uidbind/8081 mkdir uidbind/8081/192.168.1.17 mkdir uidbind/8081/192.168.1.26 echo 1017 > uidbind/8081/192.168.1.17/uid echo 1026 > uidbind/8081/192.168.1.26/uid This version even fix some leek in version 0.1 Patch attached is still for vanilla 2.6.20.7 --=20 Roberto De Ioris http://unbit.it JID: roberto@jabber.unbit.it Wii: 2999 4476 3509 0964 --=-2OwEu0bQg3VzQTtKfAby Content-Disposition: attachment; filename=uidbind-lsm-0.2.patch Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name=uidbind-lsm-0.2.patch; charset=UTF-8 ZGlmZiAtTmF1ciBsaW51eC0yLjYuMjAuNy9zZWN1cml0eS9LY29uZmlnIGxpbnV4LTIuNi4yMC43 LXVpZGJpbmQvc2VjdXJpdHkvS2NvbmZpZw0KLS0tIGxpbnV4LTIuNi4yMC43L3NlY3VyaXR5L0tj b25maWcJMjAwNy0wNC0xMyAyMjo0ODoxNC4wMDAwMDAwMDAgKzAyMDANCisrKyBsaW51eC0yLjYu MjAuNy11aWRiaW5kL3NlY3VyaXR5L0tjb25maWcJMjAwNy0wNC0yMyAwOTozMjoxNS4wMDAwMDAw MDAgKzAyMDANCkBAIC05Myw2ICs5MywxOCBAQA0KIAkgIA0KIAkgIElmIHlvdSBhcmUgdW5zdXJl IGhvdyB0byBhbnN3ZXIgdGhpcyBxdWVzdGlvbiwgYW5zd2VyIE4uDQogDQorY29uZmlnIFNFQ1VS SVRZX1VJREJJTkQNCisJdHJpc3RhdGUgIlVpZEJpbmQiDQorCWRlcGVuZHMgb24gQ09ORklHRlNf RlMgJiYgU0VDVVJJVFkgJiYgU0VDVVJJVFlfTkVUV09SSw0KKwloZWxwDQorCSAgVGhpcyBzaW1w bGUgbW9kdWxlIGFsbG93cyBjYWxsIHRvIGJpbmQoKSBmdW5jdGlvbiBvbmx5IGZvcg0KKyAgICAg ICAgICB1aWQgZGVmaW5lZCBpbiBhIGNvbmZpZ2ZzIHRyZWUuDQorCSAgVGhlIG9ubHkgc3VwcG9y dGVkIHNvY2tldCBpcyBQRl9JTkVULg0KKw0KKwkgIFNlZSAgPGh0dHA6Ly9wcm9qZWN0cy51bmJp dC5pdC91aWRiaW5kPiBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dA0KKwkgIHRoaXMgbW9kdWxl DQorCSAgDQorDQogc291cmNlIHNlY3VyaXR5L3NlbGludXgvS2NvbmZpZw0KIA0KIGVuZG1lbnUN CmRpZmYgLU5hdXIgbGludXgtMi42LjIwLjcvc2VjdXJpdHkvTWFrZWZpbGUgbGludXgtMi42LjIw LjctdWlkYmluZC9zZWN1cml0eS9NYWtlZmlsZQ0KLS0tIGxpbnV4LTIuNi4yMC43L3NlY3VyaXR5 L01ha2VmaWxlCTIwMDctMDQtMTMgMjI6NDg6MTQuMDAwMDAwMDAwICswMjAwDQorKysgbGludXgt Mi42LjIwLjctdWlkYmluZC9zZWN1cml0eS9NYWtlZmlsZQkyMDA3LTA0LTIzIDA5OjMwOjM3LjAw MDAwMDAwMCArMDIwMA0KQEAgLTE2LDMgKzE2LDQgQEANCiBvYmotJChDT05GSUdfU0VDVVJJVFlf U0VMSU5VWCkJCSs9IHNlbGludXgvYnVpbHQtaW4ubw0KIG9iai0kKENPTkZJR19TRUNVUklUWV9D QVBBQklMSVRJRVMpCSs9IGNvbW1vbmNhcC5vIGNhcGFiaWxpdHkubw0KIG9iai0kKENPTkZJR19T RUNVUklUWV9ST09UUExVRykJCSs9IGNvbW1vbmNhcC5vIHJvb3RfcGx1Zy5vDQorb2JqLSQoQ09O RklHX1NFQ1VSSVRZX1VJREJJTkQpCQkrPSBjb21tb25jYXAubyB1aWRiaW5kLm8NCmRpZmYgLU5h dXIgbGludXgtMi42LjIwLjcvc2VjdXJpdHkvdWlkYmluZC5jIGxpbnV4LTIuNi4yMC43LXVpZGJp bmQvc2VjdXJpdHkvdWlkYmluZC5jDQotLS0gbGludXgtMi42LjIwLjcvc2VjdXJpdHkvdWlkYmlu ZC5jCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwDQorKysgbGludXgtMi42LjIw LjctdWlkYmluZC9zZWN1cml0eS91aWRiaW5kLmMJMjAwNy0wNC0yNCAxNjoxNzo0NC4wMDAwMDAw MDAgKzAyMDANCkBAIC0wLDAgKzEsNDY3IEBADQorLyogVWlkQmluZCAwLjIgTFNNDQorICogUGVy bWl0IGJpbmQoKSBmdW5jdGlvbiBvbmx5IHRvIG9uZSB1aWQNCisgKg0KKyAqIFNlZSA8aHR0cDov L3Byb2plY3RzLnVuYml0Lml0L3VpZGJpbmQvPiBmb3IgKGxpdHRsZSkgbW9yZSBpbmZvDQorICoN CisgKiAgICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp YnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQorICogICAgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQ0KKyAqICAgICAgdGhl IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5z ZSwgb3INCisgKiAgICAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQorICoN CisgKg0KKyAqIENoYW5nZWxvZw0KKyAqDQorICogMjAwNzA0MjMgLT4gdmVyc2lvbiAwLjEgKGZp cnN0IHJlbGVhc2UpDQorICoNCisgKg0KKyAqIDIwMDcwNDI0IC0+IHZlcnNpb24gMC4yIChidWdm aXggZm9yIHNvbWUgZXJyb25lb3VzIHN0cmluZyBtYW5hZ2VtZW50LCBhZGRlZCB0Y3AvdWRwIGFu ZCBpcHY0IGFkZHJlc3NlcyBzdXBwb3J0IGluIHJ1bGVzKQ0KKyAqDQorKi8NCisNCisNCisjaW5j bHVkZSA8bGludXgvbW9kdWxlLmg+DQorI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPg0KKyNpbmNs dWRlIDxsaW51eC9pbml0Lmg+DQorI2luY2x1ZGUgPGxpbnV4L3NlY3VyaXR5Lmg+DQorI2luY2x1 ZGUgPGxpbnV4L3NvY2tldC5oPg0KKyNpbmNsdWRlIDxsaW51eC9pbmV0Lmg+DQorI2luY2x1ZGUg PG5ldC9pcC5oPg0KKyNpbmNsdWRlIDxsaW51eC9jb25maWdmcy5oPg0KKw0KKw0KKy8qIGZsYWcg dG8ga2VlcCB0cmFjayBvZiBob3cgd2Ugd2VyZSByZWdpc3RlcmVkICovDQorc3RhdGljIGludCBz ZWNvbmRhcnk7DQorDQorc3RhdGljIGludCBkZWJ1ZyA9IDE7DQorDQorDQorI2RlZmluZSBNWV9O QU1FICJ1aWRiaW5kIg0KKyNkZWZpbmUgVUlEQklORF9MQUJFTCAiW1VpZEJpbmRdICINCisNCisj ZGVmaW5lIE1BWFBPUlRDSEFSIDYNCisjZGVmaW5lIE1BWEFERFJDSEFSIDE2DQorDQorc3RydWN0 IHBvcnRfY29uZmlnX2dyb3VwIHsNCisJc3RydWN0IGNvbmZpZ19ncm91cCBncm91cDsNCisJdWlk X3QgdWlkOw0KKwl1aWRfdCB0Y3BfdWlkOw0KKwl1aWRfdCB1ZHBfdWlkOw0KK307DQorDQorc3Ry dWN0IHBvcnRfY29uZmlnX2l0ZW0gew0KKwlzdHJ1Y3QgY29uZmlnX2l0ZW0gaXRlbTsNCisJdWlk X3QgdWlkOw0KKwl1aWRfdCB0Y3BfdWlkOw0KKwl1aWRfdCB1ZHBfdWlkOw0KK307DQorDQorDQor DQorc3RhdGljIHN0cnVjdCBjb25maWdfaXRlbSAqcG9ydF9hZGRyX21ha2Uoc3RydWN0IGNvbmZp Z19ncm91cCAqLCBjb25zdCBjaGFyICopIDsNCitzdGF0aWMgc3RydWN0IGNvbmZpZ19ncm91cCAq cG9ydF9ncm91cF9tYWtlKHN0cnVjdCBjb25maWdfZ3JvdXAgKiwgY29uc3QgY2hhciAqKSA7DQor c3RhdGljIHNzaXplX3QgcG9ydF9ncm91cGF0dHJfc2hvdyhzdHJ1Y3QgY29uZmlnX2l0ZW0gKiwg c3RydWN0IGNvbmZpZ2ZzX2F0dHJpYnV0ZSAqLCBjaGFyICopIDsNCitzdGF0aWMgc3NpemVfdCBw b3J0X2dyb3VwYXR0cl9zdG9yZShzdHJ1Y3QgY29uZmlnX2l0ZW0gKiwgc3RydWN0IGNvbmZpZ2Zz X2F0dHJpYnV0ZSAqLCBjb25zdCBjaGFyICosIHNpemVfdCkgOw0KK3N0YXRpYyBzc2l6ZV90IHBv cnRfYXR0cl9zaG93KHN0cnVjdCBjb25maWdfaXRlbSAqLCBzdHJ1Y3QgY29uZmlnZnNfYXR0cmli dXRlICosIGNoYXIgKikgOw0KK3N0YXRpYyBzc2l6ZV90IHBvcnRfYXR0cl9zdG9yZShzdHJ1Y3Qg Y29uZmlnX2l0ZW0gKiwgc3RydWN0IGNvbmZpZ2ZzX2F0dHJpYnV0ZSAqLCBjb25zdCBjaGFyICos IHNpemVfdCkgOw0KKw0KKw0KK3N0YXRpYyBzdHJ1Y3QgY29uZmlnZnNfYXR0cmlidXRlIHBvcnRf dWlkX2F0dHIgPSB7IC5jYV9vd25lciA9IFRISVNfTU9EVUxFLCAuY2FfbmFtZSA9ICJ1aWQiLCAu Y2FfbW9kZSA9IFNfSVJVU1IgfCBTX0lXVVNSIH0gOw0KK3N0YXRpYyBzdHJ1Y3QgY29uZmlnZnNf YXR0cmlidXRlIHBvcnRfdGNwX2F0dHIgPSB7IC5jYV9vd25lciA9IFRISVNfTU9EVUxFLCAuY2Ff bmFtZSA9ICJ0Y3BfdWlkIiwgLmNhX21vZGUgPSBTX0lSVVNSIHwgU19JV1VTUiB9IDsNCitzdGF0 aWMgc3RydWN0IGNvbmZpZ2ZzX2F0dHJpYnV0ZSBwb3J0X3VkcF9hdHRyID0geyAuY2Ffb3duZXIg PSBUSElTX01PRFVMRSwgLmNhX25hbWUgPSAidWRwX3VpZCIsIC5jYV9tb2RlID0gU19JUlVTUiB8 IFNfSVdVU1IgfSA7DQorDQorLyogcG9ydCBhdHRyaWJ1dGVzICovDQorc3RhdGljIHN0cnVjdCBj b25maWdmc19hdHRyaWJ1dGUgKnBvcnRfYXR0cnNbXSA9IHsgJnBvcnRfdWlkX2F0dHIgLCAmcG9y dF90Y3BfYXR0ciAsJnBvcnRfdWRwX2F0dHIgLCBOVUxMIH0gOw0KKw0KK3N0YXRpYyBzdHJ1Y3Qg Y29uZmlnZnNfZ3JvdXBfb3BlcmF0aW9ucyBwb3J0X2l0ZW1fZ3JvdXBfb3BzID0geyAubWFrZV9p dGVtID0gcG9ydF9hZGRyX21ha2UgfSA7DQorDQorDQorDQorDQorc3RhdGljIHZvaWQgdWlkYmlu ZF9ncm91cF9yZWxlYXNlKHN0cnVjdCBjb25maWdfaXRlbSAqaXRlbSkNCit7DQorICAgICAgICBr ZnJlZShjb250YWluZXJfb2YodG9fY29uZmlnX2dyb3VwKGl0ZW0pLHN0cnVjdCBwb3J0X2NvbmZp Z19ncm91cCxncm91cCkpOw0KK30NCisNCitzdGF0aWMgdm9pZCB1aWRiaW5kX2l0ZW1fcmVsZWFz ZShzdHJ1Y3QgY29uZmlnX2l0ZW0gKml0ZW0pDQorew0KKyAgICAgICAga2ZyZWUoY29udGFpbmVy X29mKGl0ZW0sc3RydWN0IHBvcnRfY29uZmlnX2l0ZW0saXRlbSkpOw0KK30NCisNCisvKiBwb3J0 IG9wcyAqLw0KK3N0YXRpYyBzdHJ1Y3QgY29uZmlnZnNfaXRlbV9vcGVyYXRpb25zIHBvcnRfYWRk cml0ZW1fb3BzID0geyAuc2hvd19hdHRyaWJ1dGUgPSBwb3J0X2F0dHJfc2hvdywgLnN0b3JlX2F0 dHJpYnV0ZSA9IHBvcnRfYXR0cl9zdG9yZSB9IDsNCitzdGF0aWMgc3RydWN0IGNvbmZpZ2ZzX2l0 ZW1fb3BlcmF0aW9ucyBwb3J0X2l0ZW1fb3BzID0gey5yZWxlYXNlID0gdWlkYmluZF9pdGVtX3Jl bGVhc2UsIC5zaG93X2F0dHJpYnV0ZSA9IHBvcnRfZ3JvdXBhdHRyX3Nob3csIC5zdG9yZV9hdHRy aWJ1dGUgPSBwb3J0X2dyb3VwYXR0cl9zdG9yZSB9IDsNCisNCisvKiBjb25maWdmcyB0eXBlcyAq Lw0KK3N0YXRpYyBzdHJ1Y3QgY29uZmlnX2l0ZW1fdHlwZSBwb3J0X3R5cGUgPSB7IC5jdF9pdGVt X29wcyA9ICZwb3J0X2l0ZW1fb3BzLCAuY3RfZ3JvdXBfb3BzID0gJnBvcnRfaXRlbV9ncm91cF9v cHMgLCAuY3RfYXR0cnMgPSBwb3J0X2F0dHJzLCAuY3Rfb3duZXIgPSBUSElTX01PRFVMRSB9IDsN CitzdGF0aWMgc3RydWN0IGNvbmZpZ19pdGVtX3R5cGUgcG9ydGFkZHJfdHlwZSA9IHsgLmN0X2l0 ZW1fb3BzID0gJnBvcnRfYWRkcml0ZW1fb3BzLCAuY3RfYXR0cnMgPSBwb3J0X2F0dHJzLCAuY3Rf b3duZXIgPSBUSElTX01PRFVMRSB9IDsNCisNCisNCitzdGF0aWMgc3RydWN0IGNvbmZpZ19pdGVt ICpwb3J0X2FkZHJfbWFrZShzdHJ1Y3QgY29uZmlnX2dyb3VwICpncm91cCwgY29uc3QgY2hhciAq bmFtZSkgew0KKyAgICAgICAgc3RydWN0IHBvcnRfY29uZmlnX2l0ZW0gKnBvcnRpdGVtIDsNCisJ dTggaXB2NGFkZHJbNF07DQorCWNvbnN0IGNoYXIgKmVuZDsNCisJaW50IHJldCA9IDAgOw0KKw0K KwkvKiB2YWxpZCBpcHY0IGFkZHJlc3MgPyAqLw0KKwlyZXQgPSBpbjRfcHRvbihuYW1lLCBzdHJs ZW4obmFtZSksIGlwdjRhZGRyLCAtMSwgJmVuZCkgOw0KKw0KKwlpZiAocmV0ID09IDApIHsNCisJ CXByaW50ayhLRVJOX0VSUiBVSURCSU5EX0xBQkVMICJpbnZhbGlkIGlwdjQgYWRkcmVzczogJXNc biIsIG5hbWUpIDsNCisJCXJldHVybiBOVUxMIDsNCisJfQ0KKw0KKwlpZiAoZGVidWcpDQorCQlw cmludGsoS0VSTl9ERUJVRyBVSURCSU5EX0xBQkVMICJpcCB2YWxpZGF0ZWQgYnkgaW40X3B0b246 ICV1LiV1LiV1LiV1XG4iLCBOSVBRVUFEKGlwdjRhZGRyKSkgOw0KKwkNCisNCisgICAgICAgIHBv cnRpdGVtID0ga21hbGxvYyhzaXplb2Yoc3RydWN0IHBvcnRfY29uZmlnX2l0ZW0pLCBHRlBfS0VS TkVMKTsNCisNCisgICAgICAgIGlmICghcG9ydGl0ZW0pDQorCQlyZXR1cm4gTlVMTCA7DQorDQor DQorICAgICAgICBtZW1zZXQocG9ydGl0ZW0sIDAgLCBzaXplb2Yoc3RydWN0IHBvcnRfY29uZmln X2l0ZW0pKSA7DQorICAgICAgICBjb25maWdfaXRlbV9pbml0X3R5cGVfbmFtZSgmcG9ydGl0ZW0t Pml0ZW0sIG5hbWUsICZwb3J0YWRkcl90eXBlKSA7DQorDQorICAgICAgICBwb3J0aXRlbS0+dWlk ID0gMCA7DQorICAgICAgICBwb3J0aXRlbS0+dGNwX3VpZCA9IDAgOw0KKyAgICAgICAgcG9ydGl0 ZW0tPnVkcF91aWQgPSAwIDsNCisNCisgICAgICAgIHJldHVybiAmcG9ydGl0ZW0tPml0ZW0gOw0K K30NCisNCisNCisNCisNCisNCitzdGF0aWMgc3RydWN0IGNvbmZpZ19ncm91cCAqcG9ydF9ncm91 cF9tYWtlKHN0cnVjdCBjb25maWdfZ3JvdXAgKmdyb3VwLCBjb25zdCBjaGFyICpuYW1lKSB7DQor DQorCXN0cnVjdCBwb3J0X2NvbmZpZ19ncm91cCAqcG9ydGdyb3VwIDsNCisJdW5zaWduZWQgc2hv cnQgcG9ydF9udW0gOw0KKw0KKwkvKiB2YWxpZCBwb3J0IG51bWJlciA/ICovDQorCXBvcnRfbnVt ID0gc2ltcGxlX3N0cnRvdWwobmFtZSxOVUxMLDApIDsNCisNCisJaWYgKHBvcnRfbnVtIDwgMTAy NCB8fCAhcG9ydF9udW0pIHsNCisJCWlmIChkZWJ1ZykNCisJCQlwcmludGsoS0VSTl9ERUJVRyBV SURCSU5EX0xBQkVMICJJbnZhbGlkIHBvcnQgbnVtYmVyOiAlc1xuIiwgbmFtZSkgOw0KKw0KKwkJ cmV0dXJuIE5VTEwgOw0KKwl9DQorDQorCXBvcnRncm91cCA9IGttYWxsb2Moc2l6ZW9mKHN0cnVj dCBwb3J0X2NvbmZpZ19ncm91cCksIEdGUF9LRVJORUwpOw0KKw0KKwlpZiAoIXBvcnRncm91cCkg cmV0dXJuIE5VTEwgOw0KKw0KKwkNCisJbWVtc2V0KHBvcnRncm91cCwgMCAsIHNpemVvZihzdHJ1 Y3QgcG9ydF9jb25maWdfZ3JvdXApKSA7DQorDQorCWNvbmZpZ19ncm91cF9pbml0X3R5cGVfbmFt ZSgmcG9ydGdyb3VwLT5ncm91cCwgbmFtZSwgJnBvcnRfdHlwZSkgOw0KKw0KKwlwb3J0Z3JvdXAt PnVpZCA9IDAgOw0KKwlwb3J0Z3JvdXAtPnRjcF91aWQgPSAwIDsNCisJcG9ydGdyb3VwLT51ZHBf dWlkID0gMCA7DQorDQorCXByaW50ayhLRVJOX0RFQlVHIFVJREJJTkRfTEFCRUwgInVpZCAldVxu IiwgcG9ydGdyb3VwLT51aWQpIDsNCisNCisJaWYgKGRlYnVnKQ0KKwkJcHJpbnRrKEtFUk5fREVC VUcgVUlEQklORF9MQUJFTCAiQXNzaWduZWQgZGVmYXVsdCBydWxlIHRvIHBvcnQgJXNcbiIsIG5h bWUpIDsNCisNCisJcmV0dXJuICZwb3J0Z3JvdXAtPmdyb3VwIDsNCit9DQorDQorDQorc3RhdGlj IHN0cnVjdCBjb25maWdmc19ncm91cF9vcGVyYXRpb25zIHBvcnRfZ3JvdXBfb3BzID0geyAubWFr ZV9ncm91cCA9IHBvcnRfZ3JvdXBfbWFrZSB9IDsgDQorc3RhdGljIHN0cnVjdCBjb25maWdmc19p dGVtX29wZXJhdGlvbnMgcG9ydF9yZWxlYXNlX29wcyA9IHsgLnJlbGVhc2UgPSB1aWRiaW5kX2dy b3VwX3JlbGVhc2UgfSA7IA0KK3N0YXRpYyBzdHJ1Y3QgY29uZmlnX2l0ZW1fdHlwZSB1aWRiaW5k X3R5cGUgPSB7IC5jdF9pdGVtX29wcyA9ICZwb3J0X3JlbGVhc2Vfb3BzLCAuY3RfZ3JvdXBfb3Bz ID0gJnBvcnRfZ3JvdXBfb3BzLCAuY3Rfb3duZXIgPSBUSElTX01PRFVMRSB9IDsNCisNCisNCisN CisvKiBjb25maWdmcyBzdWJzeXMgKi8NCitzdGF0aWMgc3RydWN0IGNvbmZpZ2ZzX3N1YnN5c3Rl bSB1aWRiaW5kX3N1YnN5cyA9IHsgLnN1X2dyb3VwID0geyAuY2dfaXRlbSA9IHsgLmNpX25hbWVi dWYgPSAidWlkYmluZCIsIC5jaV90eXBlID0gJnVpZGJpbmRfdHlwZX0gfSB9IDsNCisNCitzdGF0 aWMgc3NpemVfdCBwb3J0X2dyb3VwYXR0cl9zaG93KHN0cnVjdCBjb25maWdfaXRlbSAqaXRlbSwg c3RydWN0IGNvbmZpZ2ZzX2F0dHJpYnV0ZSAqYXR0ciwgY2hhciAqcGFnZSkgew0KKyAgICAgICAg c3NpemVfdCByZXQgPSAwOw0KKyAgICAgICAgdWlkX3QgdWlkID0gMCA7DQorDQorICAgICAgICBz dHJ1Y3QgcG9ydF9jb25maWdfZ3JvdXAgKnBvcnRfY29uZmlnID0gY29udGFpbmVyX29mKHRvX2Nv bmZpZ19ncm91cChpdGVtKSwgc3RydWN0IHBvcnRfY29uZmlnX2dyb3VwLCBncm91cCkgOw0KKw0K KyAgICAgICAgaWYgKGF0dHItPmNhX25hbWUgPT0gInVpZCIpIHVpZCA9IHBvcnRfY29uZmlnLT51 aWQgOw0KKyAgICAgICAgaWYgKGF0dHItPmNhX25hbWUgPT0gInRjcF91aWQiKSB1aWQgPSBwb3J0 X2NvbmZpZy0+dGNwX3VpZCA7DQorICAgICAgICBpZiAoYXR0ci0+Y2FfbmFtZSA9PSAidWRwX3Vp ZCIpIHVpZCA9IHBvcnRfY29uZmlnLT51ZHBfdWlkIDsNCisNCisNCisgICAgICAgIHJldCA9IHNw cmludGYocGFnZSwgIiV1XG4iLCB1aWQgKSA7DQorDQorICAgICAgICBpZiAoZGVidWcpDQorICAg ICAgICAgICAgICAgIHByaW50ayhLRVJOX0RFQlVHIFVJREJJTkRfTEFCRUwgIlJlYWRpbmcgJXMg YXR0ciBmb3IgaXRlbSAlc1xuIiwgYXR0ci0+Y2FfbmFtZSwgaXRlbS0+Y2lfbmFtZSkgOw0KKw0K KyAgICAgICAgcmV0dXJuIHJldCA7DQorfQ0KKw0KK3N0YXRpYyBzc2l6ZV90IHBvcnRfZ3JvdXBh dHRyX3N0b3JlKHN0cnVjdCBjb25maWdfaXRlbSAqaXRlbSwgc3RydWN0IGNvbmZpZ2ZzX2F0dHJp YnV0ZSAqYXR0ciwgY29uc3QgY2hhciAqcGFnZSwgc2l6ZV90IGNvdW50KSB7DQorICAgICAgICBz c2l6ZV90IHJldCA9IC1FSU5WQUw7DQorICAgICAgICB1aWRfdCB1aWQgPSAwIDsNCisNCisgICAg ICAgIHN0cnVjdCBwb3J0X2NvbmZpZ19ncm91cCAqcG9ydF9jb25maWcgPSBjb250YWluZXJfb2Yo dG9fY29uZmlnX2dyb3VwKGl0ZW0pLCBzdHJ1Y3QgcG9ydF9jb25maWdfZ3JvdXAsIGdyb3VwKSA7 DQorDQorICAgICAgICB1aWQgPSBzaW1wbGVfc3RydG91bChwYWdlLCBOVUxMLCAwKSA7DQorDQor DQorICAgICAgICBpZiAoYXR0ci0+Y2FfbmFtZSA9PSAidWlkIikgcG9ydF9jb25maWctPnVpZCA9 IHVpZCA7DQorICAgICAgICBpZiAoYXR0ci0+Y2FfbmFtZSA9PSAidGNwX3VpZCIpIHBvcnRfY29u ZmlnLT50Y3BfdWlkID0gdWlkIDsNCisgICAgICAgIGlmIChhdHRyLT5jYV9uYW1lID09ICJ1ZHBf dWlkIikgcG9ydF9jb25maWctPnVkcF91aWQgPSB1aWQgOw0KKw0KKyAgICAgICAgaWYgKGRlYnVn KQ0KKyAgICAgICAgICAgICAgICBwcmludGsoS0VSTl9ERUJVRyBVSURCSU5EX0xBQkVMICJBc3Np Z25lZCAlcyAldSB0byBpdGVtICVzXG4iLCBhdHRyLT5jYV9uYW1lLCB1aWQsIGl0ZW0tPmNpX25h bWUpIDsNCisNCisgICAgICAgIHJldCA9IGNvdW50IDsNCisNCisgICAgICAgIHJldHVybiByZXQ7 DQorfQ0KKw0KKw0KK3N0YXRpYyBzc2l6ZV90IHBvcnRfYXR0cl9zaG93KHN0cnVjdCBjb25maWdf aXRlbSAqaXRlbSwgc3RydWN0IGNvbmZpZ2ZzX2F0dHJpYnV0ZSAqYXR0ciwgY2hhciAqcGFnZSkg ew0KKyAgICAgICAgc3NpemVfdCByZXQgPSAwOw0KKwl1aWRfdCB1aWQgPSAwIDsNCisNCisgICAg ICAgIHN0cnVjdCBwb3J0X2NvbmZpZ19pdGVtICpwb3J0X2NvbmZpZyA9IGNvbnRhaW5lcl9vZihp dGVtLCBzdHJ1Y3QgcG9ydF9jb25maWdfaXRlbSwgaXRlbSkgOw0KKw0KKwlpZiAoYXR0ci0+Y2Ff bmFtZSA9PSAidWlkIikgdWlkID0gcG9ydF9jb25maWctPnVpZCA7DQorCWlmIChhdHRyLT5jYV9u YW1lID09ICJ0Y3BfdWlkIikgdWlkID0gcG9ydF9jb25maWctPnRjcF91aWQgOw0KKwlpZiAoYXR0 ci0+Y2FfbmFtZSA9PSAidWRwX3VpZCIpIHVpZCA9IHBvcnRfY29uZmlnLT51ZHBfdWlkIDsNCisN CisgICAgICAgIHJldCA9IHNwcmludGYocGFnZSwgIiV1XG4iLCB1aWQgKSA7DQorDQorICAgICAg ICBpZiAoZGVidWcpDQorICAgICAgICAgICAgICAgIHByaW50ayhLRVJOX0RFQlVHIFVJREJJTkRf TEFCRUwgIlJlYWRpbmcgJXMgYXR0ciBmb3IgaXRlbSAlc1xuIiwgYXR0ci0+Y2FfbmFtZSwgaXRl bS0+Y2lfbmFtZSkgOw0KKw0KKyAgICAgICAgcmV0dXJuIHJldCA7DQorfQ0KKw0KK3N0YXRpYyBz c2l6ZV90IHBvcnRfYXR0cl9zdG9yZShzdHJ1Y3QgY29uZmlnX2l0ZW0gKml0ZW0sIHN0cnVjdCBj b25maWdmc19hdHRyaWJ1dGUgKmF0dHIsIGNvbnN0IGNoYXIgKnBhZ2UsIHNpemVfdCBjb3VudCkg ew0KKyAgICAgICAgc3NpemVfdCByZXQgPSAtRUlOVkFMOw0KKyAgICAgICAgdWlkX3QgdWlkID0g MCA7DQorDQorICAgICAgICBzdHJ1Y3QgcG9ydF9jb25maWdfaXRlbSAqcG9ydF9jb25maWcgPSBj b250YWluZXJfb2YoaXRlbSwgc3RydWN0IHBvcnRfY29uZmlnX2l0ZW0sIGl0ZW0pIDsNCisNCisg ICAgICAgIHVpZCA9IHNpbXBsZV9zdHJ0b3VsKHBhZ2UsIE5VTEwsIDApIDsNCisNCisNCisgICAg ICAgIGlmIChhdHRyLT5jYV9uYW1lID09ICJ1aWQiKSBwb3J0X2NvbmZpZy0+dWlkID0gdWlkIDsN CisgICAgICAgIGlmIChhdHRyLT5jYV9uYW1lID09ICJ0Y3BfdWlkIikgcG9ydF9jb25maWctPnRj cF91aWQgPSB1aWQgOw0KKyAgICAgICAgaWYgKGF0dHItPmNhX25hbWUgPT0gInVkcF91aWQiKSBw b3J0X2NvbmZpZy0+dWRwX3VpZCA9IHVpZCA7DQorDQorICAgICAgICBpZiAoZGVidWcpDQorICAg ICAgICAgICAgICAgIHByaW50ayhLRVJOX0RFQlVHIFVJREJJTkRfTEFCRUwgIkFzc2lnbmVkICVz ICV1IHRvIGl0ZW0gJXNcbiIsIGF0dHItPmNhX25hbWUsIHVpZCwgaXRlbS0+Y2lfbmFtZSkgOw0K Kw0KKyAgICAgICAgcmV0ID0gY291bnQgOw0KKw0KKyAgICAgICAgcmV0dXJuIHJldDsNCit9DQor DQorDQorDQorDQorc3RhdGljIGludCB1aWRiaW5kX3NvY2tldF9iaW5kX2NoZWNrIChzdHJ1Y3Qg c29ja2V0ICpzb2NrLCBzdHJ1Y3Qgc29ja2FkZHIgKmFkZHJlc3MsIGludCBhZGRybGVuKQ0KK3sN CisNCisJdTE2IGZhbWlseSA7DQorCXN0cnVjdCBzb2NrYWRkcl9pbiAqYWRkcjQgOw0KKwlzdHJ1 Y3QgY29uZmlnX2l0ZW0gKnBvcnRhZGRyY29uZmlnIDsNCisJc3RydWN0IGNvbmZpZ19pdGVtICpw b3J0Z3JvdXBjb25maWcgOw0KKwlzdHJ1Y3QgcG9ydF9jb25maWdfZ3JvdXAgKnBvcnRmb3VuZGdy b3VwIDsNCisJc3RydWN0IHBvcnRfY29uZmlnX2l0ZW0gKnBvcnRmb3VuZGFkZHIgOw0KKwl1bnNp Z25lZCBzaG9ydCBzb2NrZXRfcG9ydDsNCisJY2hhciBzdHJwb3J0W01BWFBPUlRDSEFSXSA7DQor CWNoYXIgaXBhZGRyW01BWEFERFJDSEFSXSA7DQorDQorCWlmIChjdXJyZW50LT51aWQgPT0gMCkN CisJCXJldHVybiAwIDsNCisNCisNCisJLyogY2hlY2sgb3JkZXIgDQorCSAqDQorCSAqIHVpZGJp bmQvPHBvcnQ+LzxpcD4vPHByb3RvPl91aWQgIA0KKwkgKiB1aWRiaW5kLzxwb3J0Pi88aXA+L3Vp ZA0KKwkgKiB1aWRiaW5kLzxwb3J0Pi88cHJvdG8+X3VpZA0KKwkgKiB1aWRiaW5kLzxwb3J0Pi91 aWQNCisJICoNCisJKi8NCisNCisJZmFtaWx5ID0gc29jay0+c2stPnNrX2ZhbWlseTsNCisNCisN CisJaWYgKGZhbWlseSA9PSBQRl9JTkVUKSB7DQorDQorCQlhZGRyNCA9IChzdHJ1Y3Qgc29ja2Fk ZHJfaW4gKilhZGRyZXNzOw0KKyAgICAgICAgICAgICAgICBzb2NrZXRfcG9ydCA9IG50b2hzKGFk ZHI0LT5zaW5fcG9ydCk7DQorCQlzcHJpbnRmKGlwYWRkciwiJXUuJXUuJXUuJXUiLE5JUFFVQUQo YWRkcjQtPnNpbl9hZGRyLnNfYWRkcikpIDsNCisNCisJCWlmIChkZWJ1ZykJCQ0KKwkJCXByaW50 ayhLRVJOX0RFQlVHIFVJREJJTkRfTEFCRUwgImJpbmQoKSBhdHRlbXB0IG9uIHBvcnQgJXUgKCV1 KSBpbnRlcmZhY2UgJXMgYnkgcHJvY2VzcyBbJXNdIHVpZCBbJXVdXG4iLCBzb2NrZXRfcG9ydCwg c29jay0+c2stPnNrX3Byb3RvY29sLCBpcGFkZHIsIGN1cnJlbnQtPmNvbW0sIGN1cnJlbnQtPnVp ZCkgOw0KKw0KKwkJc3ByaW50ZihzdHJwb3J0LCIldSIsIHNvY2tldF9wb3J0KSA7DQorDQorCQlw b3J0Z3JvdXBjb25maWcgPSBjb25maWdfZ3JvdXBfZmluZF9vYmooJnVpZGJpbmRfc3Vic3lzLnN1 X2dyb3VwLHN0cnBvcnQpIDsNCisNCisJCWlmICghcG9ydGdyb3VwY29uZmlnKSB7DQorCQkJaWYg KGRlYnVnKQ0KKwkJCQlwcmludGsoS0VSTl9ERUJVRyBVSURCSU5EX0xBQkVMICJDb25maWd1cmF0 aW9uIGZvciBwb3J0ICVzIHVuYXZhaWxhYmxlXG4iLCBzdHJwb3J0ICkgOw0KKw0KKwkJCXJldHVy biAtRUFDQ0VTOw0KKwkJfQ0KKw0KKw0KKwkJcG9ydGZvdW5kZ3JvdXAgPSBjb250YWluZXJfb2Yo dG9fY29uZmlnX2dyb3VwKHBvcnRncm91cGNvbmZpZyksIHN0cnVjdCBwb3J0X2NvbmZpZ19ncm91 cCwgZ3JvdXApIDsNCisNCisJCXBvcnRhZGRyY29uZmlnID0gY29uZmlnX2dyb3VwX2ZpbmRfb2Jq KCZwb3J0Zm91bmRncm91cC0+Z3JvdXAsaXBhZGRyKSA7DQorDQorCQkvKiBjb25maWdmcyBhZGRy ZXNzIHNwZWNpZmllZCA/ICovDQorDQorCQlpZiAocG9ydGFkZHJjb25maWcpIHsNCisNCisJCQlw b3J0Zm91bmRhZGRyID0gY29udGFpbmVyX29mKHBvcnRhZGRyY29uZmlnLCBzdHJ1Y3QgcG9ydF9j b25maWdfaXRlbSwgaXRlbSkgOw0KKw0KKwkJCWlmIChzb2NrLT5zay0+c2tfcHJvdG9jb2wgPT0g SVBQUk9UT19UQ1ApIHsNCisJCQkJaWYgKHBvcnRmb3VuZGFkZHItPnRjcF91aWQgIT0gMCkgew0K KwkJCQkJaWYgKHBvcnRmb3VuZGFkZHItPnRjcF91aWQgPT0gY3VycmVudC0+dWlkKSB7DQorCQkJ CQkJcmV0dXJuIDAgOw0KKwkJCQkJfQ0KKwkJCQl9DQorCQkJCQ0KKwkJCX0NCisNCisJCQlpZiAo c29jay0+c2stPnNrX3Byb3RvY29sID09IElQUFJPVE9fVURQKSB7DQorCQkJCWlmIChwb3J0Zm91 bmRhZGRyLT51ZHBfdWlkICE9IDApIHsNCisJCQkJCWlmIChwb3J0Zm91bmRhZGRyLT51ZHBfdWlk ID09IGN1cnJlbnQtPnVpZCkgew0KKwkJCQkJCXJldHVybiAwIDsNCisJCQkJCX0NCisJCQkJfQ0K KwkJCX0NCisNCisJDQorCQkJaWYgKHBvcnRmb3VuZGFkZHItPnVpZCAhPSAwKSB7DQorCQkJCWlm IChwb3J0Zm91bmRhZGRyLT51aWQgPT0gY3VycmVudC0+dWlkKSB7DQorCQkJCQlyZXR1cm4gMCA7 DQorCQkJCX0NCisJCQl9DQorDQorCQl9DQorDQorCQkvKiBhZGRyZXNzIGNoZWNrIGZhaWxlZCAu Li4gKi8NCisNCisJCWlmIChzb2NrLT5zay0+c2tfcHJvdG9jb2wgPT0gSVBQUk9UT19UQ1ApIHsN CisJCQlpZiAocG9ydGZvdW5kZ3JvdXAtPnRjcF91aWQgIT0gMCkgew0KKwkJCQlpZiAocG9ydGZv dW5kZ3JvdXAtPnRjcF91aWQgPT0gY3VycmVudC0+dWlkKSB7DQorCQkJCQlyZXR1cm4gMCA7DQor CQkJCX0NCisJCQl9DQorCQl9DQorDQorCQlpZiAoc29jay0+c2stPnNrX3Byb3RvY29sID09IElQ UFJPVE9fVURQKSB7DQorCQkJaWYgKHBvcnRmb3VuZGdyb3VwLT51ZHBfdWlkICE9IDApIHsNCisJ CQkJaWYgKHBvcnRmb3VuZGdyb3VwLT51ZHBfdWlkID09IGN1cnJlbnQtPnVpZCkgew0KKwkJCQkJ cmV0dXJuIDAgOw0KKwkJCQl9DQorCQkJfQ0KKwkJfQ0KKw0KKwkJaWYgKHBvcnRmb3VuZGdyb3Vw LT51aWQgPT0gY3VycmVudC0+dWlkKSB7DQorCQkJcmV0dXJuIDA7DQorCQl9DQorDQorCQlpZiAo ZGVidWcpDQorCQkJcHJpbnRrKEtFUk5fREVCVUcgVUlEQklORF9MQUJFTCAiYmluZCgpIGJ5IGRl ZmF1bHQgcGVybWl0dGVkIG9ubHkgdG8gdWlkICV1XG4iLCBwb3J0Zm91bmRncm91cC0+dWlkKSA7 DQorDQorCQlyZXR1cm4gLUVBQ0NFUyA7DQorCQkNCisJfQ0KKw0KKwlyZXR1cm4gMDsNCit9DQor DQorc3RhdGljIHN0cnVjdCBzZWN1cml0eV9vcGVyYXRpb25zIHVpZGJpbmRfc2VjdXJpdHlfb3Bz ID0gew0KKwkvKiBnZW5lcmFsIGNhcGFiaWxpdHkgKi8NCisJLnB0cmFjZSA9ICAgICAgICAgICAg ICAgICAgICAgICBjYXBfcHRyYWNlLA0KKyAgICAgICAgLmNhcGdldCA9ICAgICAgICAgICAgICAg ICAgICAgICBjYXBfY2FwZ2V0LA0KKyAgICAgICAgLmNhcHNldF9jaGVjayA9ICAgICAgICAgICAg ICAgICBjYXBfY2Fwc2V0X2NoZWNrLA0KKyAgICAgICAgLmNhcHNldF9zZXQgPSAgICAgICAgICAg ICAgICAgICBjYXBfY2Fwc2V0X3NldCwNCisgICAgICAgIC5jYXBhYmxlID0gICAgICAgICAgICAg ICAgICAgICAgY2FwX2NhcGFibGUsDQorICAgICAgICAuc2V0dGltZSA9ICAgICAgICAgICAgICAg ICAgICAgIGNhcF9zZXR0aW1lLA0KKyAgICAgICAgLm5ldGxpbmtfc2VuZCA9ICAgICAgICAgICAg ICAgICBjYXBfbmV0bGlua19zZW5kLA0KKyAgICAgICAgLm5ldGxpbmtfcmVjdiA9ICAgICAgICAg ICAgICAgICBjYXBfbmV0bGlua19yZWN2LA0KKw0KKyAgICAgICAgLmJwcm1fYXBwbHlfY3JlZHMg PSAgICAgICAgICAgICBjYXBfYnBybV9hcHBseV9jcmVkcywNCisgICAgICAgIC5icHJtX3NldF9z ZWN1cml0eSA9ICAgICAgICAgICAgY2FwX2Jwcm1fc2V0X3NlY3VyaXR5LA0KKyAgICAgICAgLmJw cm1fc2VjdXJlZXhlYyA9ICAgICAgICAgICAgICBjYXBfYnBybV9zZWN1cmVleGVjLA0KKw0KKyAg ICAgICAgLmlub2RlX3NldHhhdHRyID0gICAgICAgICAgICAgICBjYXBfaW5vZGVfc2V0eGF0dHIs DQorICAgICAgICAuaW5vZGVfcmVtb3ZleGF0dHIgPSAgICAgICAgICAgIGNhcF9pbm9kZV9yZW1v dmV4YXR0ciwNCisNCisgICAgICAgIC50YXNrX3Bvc3Rfc2V0dWlkID0gICAgICAgICAgICAgY2Fw X3Rhc2tfcG9zdF9zZXR1aWQsDQorICAgICAgICAudGFza19yZXBhcmVudF90b19pbml0ID0gICAg ICAgIGNhcF90YXNrX3JlcGFyZW50X3RvX2luaXQsDQorDQorICAgICAgICAuc3lzbG9nID0gICAg ICAgICAgICAgICAgICAgICAgIGNhcF9zeXNsb2csDQorDQorICAgICAgICAudm1fZW5vdWdoX21l bW9yeSA9ICAgICAgICAgICAgIGNhcF92bV9lbm91Z2hfbWVtb3J5LA0KKw0KKw0KKwkvKiB1aWRi aW5kIGhvb2sgKi8NCisJLnNvY2tldF9iaW5kID0JCXVpZGJpbmRfc29ja2V0X2JpbmRfY2hlY2sN Cit9Ow0KKw0KKw0KK3N0YXRpYyBpbnQgX19pbml0IHVpZGJpbmRfaW5pdCAodm9pZCkNCit7DQor DQorCWludCByZXQgOw0KKw0KKwlpZiAocmVnaXN0ZXJfc2VjdXJpdHkgKCZ1aWRiaW5kX3NlY3Vy aXR5X29wcykpIHsNCisJCXByaW50ayAoS0VSTl9JTkZPIFVJREJJTkRfTEFCRUwgIkZhaWx1cmUg cmVnaXN0ZXJpbmcgbW9kdWxlIHdpdGggdGhlIGtlcm5lbFxuIik7DQorCQlpZiAobW9kX3JlZ19z ZWN1cml0eSAoTVlfTkFNRSwgJnVpZGJpbmRfc2VjdXJpdHlfb3BzKSkgew0KKwkJCXByaW50ayAo S0VSTl9JTkZPIFVJREJJTkRfTEFCRUwgIkZhaWx1cmUgcmVnaXN0ZXJpbmcgbW9kdWxlIGFzIHNl Y29uZGFyeVxuIikgOw0KKwkJCXJldHVybiAtRUlOVkFMOw0KKwkJfQ0KKwkJc2Vjb25kYXJ5ID0g MTsNCisJfQ0KKw0KKwljb25maWdfZ3JvdXBfaW5pdCgmdWlkYmluZF9zdWJzeXMuc3VfZ3JvdXAp Ow0KKwlpbml0X01VVEVYKCZ1aWRiaW5kX3N1YnN5cy5zdV9zZW0pOw0KKwlyZXQgPSBjb25maWdm c19yZWdpc3Rlcl9zdWJzeXN0ZW0oJnVpZGJpbmRfc3Vic3lzKTsNCisNCisJaWYgKHJldCkgew0K KwkJcHJpbnRrKEtFUk5fRVJSIFVJREJJTkRfTEFCRUwgIkVycm9yIHdoaWxlIHJlZ2lzdGVyaW5n IGNvbmZpZ2ZzIHN1YnN5c1xuIikgOw0KKwkJY29uZmlnZnNfdW5yZWdpc3Rlcl9zdWJzeXN0ZW0o JnVpZGJpbmRfc3Vic3lzKTsNCisJCXJldHVybiByZXQgOw0KKwl9DQorDQorCXByaW50ayAoS0VS Tl9JTkZPIFVJREJJTkRfTEFCRUwgIk1vZHVsZSBpbml0aWFsaXplZFxuIikgOw0KKwlyZXR1cm4g MDsNCit9DQorDQorc3RhdGljIHZvaWQgX19leGl0IHVpZGJpbmRfZXhpdCAodm9pZCkNCit7DQor CWlmIChzZWNvbmRhcnkpIHsNCisJCWlmIChtb2RfdW5yZWdfc2VjdXJpdHkgKE1ZX05BTUUsICZ1 aWRiaW5kX3NlY3VyaXR5X29wcykpDQorCQkJcHJpbnRrIChLRVJOX0lORk8gVUlEQklORF9MQUJF TCAiRmFpbHVyZSB1bnJlZ2lzdGVyaW5nIG1vZHVsZSBhcyBwcmltYXJ5XG4iKSA7DQorCX0gZWxz ZSB7IA0KKwkJaWYgKHVucmVnaXN0ZXJfc2VjdXJpdHkgKCZ1aWRiaW5kX3NlY3VyaXR5X29wcykp IHsNCisJCQlwcmludGsgKEtFUk5fSU5GTyBVSURCSU5EX0xBQkVMICJGYWlsdXJlIHVucmVnaXN0 ZXJpbmcgbW9kdWxlXG4iKSA7DQorCQl9DQorCX0NCisNCisJY29uZmlnZnNfdW5yZWdpc3Rlcl9z dWJzeXN0ZW0oJnVpZGJpbmRfc3Vic3lzKSA7DQorDQorCXByaW50ayAoS0VSTl9JTkZPIFVJREJJ TkRfTEFCRUwgIk1vZHVsZSByZW1vdmVkXG4iKTsNCit9DQorDQorDQorDQorc2VjdXJpdHlfaW5p dGNhbGwgKHVpZGJpbmRfaW5pdCk7DQorbW9kdWxlX2V4aXQgKHVpZGJpbmRfZXhpdCk7DQorDQor TU9EVUxFX0RFU0NSSVBUSU9OKCJVaWRCaW5kIDAuMSIpOw0KK01PRFVMRV9BVVRIT1IoIlJvYmVy dG8gRGUgSW9yaXMgPHJvYmVydG9AdW5iaXQuaXQ+Iik7DQorTU9EVUxFX0xJQ0VOU0UoIkdQTCIp Ow0KKw0K --=-2OwEu0bQg3VzQTtKfAby-- --=-BTXE6KFk81eNoqAB45vL Content-Type: application/pgp-signature; name=signature.asc Content-Description: Questa =?ISO-8859-1?Q?=E8?= una parte del messaggio firmata digitalmente -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.6 (GNU/Linux) iD8DBQBGLhVul5tD0kpw00gRAqkxAJ99O+9tfLbRwQJ5uGKunAhfl6wAiQCdG7n3 Y1OEFw9Oge17jdI4cbqDBMs= =dwzh -----END PGP SIGNATURE----- --=-BTXE6KFk81eNoqAB45vL--