From mboxrd@z Thu Jan 1 00:00:00 1970 Message-ID: <4635B5FF.4000306@domain.hid> Date: Mon, 30 Apr 2007 11:25:19 +0200 From: Jan Kiszka MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="------------enigBBFA39360478F59E35EACEC6" Sender: jan.kiszka@domain.hid Subject: [Xenomai-core] [PATCH] testsuite: add clock test List-Id: "Xenomai life and development \(bug reports, patches, discussions\)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: xenomai-core This is an OpenPGP/MIME signed message (RFC 2440 and 3156) --------------enigBBFA39360478F59E35EACEC6 Content-Type: multipart/mixed; boundary="------------040305050105080701040201" This is a multi-part message in MIME format. --------------040305050105080701040201 Content-Type: text/plain; charset=ISO-8859-15 Content-Transfer-Encoding: quoted-printable Hi, here comes a new testsuite tool to add the required [1] clock validation against unsynchronised TSCs on SMP boxes. It can also be used to detect certain classes of broken clocks (TSCs...) on UP and to measure the drift against the Linux clock (gettimeofday). The latter is interesting to check the potential impact of new tsc-to-ns conversion functions and - once we provide such a feature - the synchronisation of Xenomai's time base with Linux (or other clocks). Feedback welcome! Once everyone is fine with it, I would like to apply it to trunk. IMO we should also add this test to the xeno_test script (if someone feels like providing an add-on patch, don't hesitate). Jan [1] https://mail.gna.org/public/xenomai-core/2007-04/msg00022.html --------------040305050105080701040201 Content-Type: text/plain; name="clocktest.patch" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="clocktest.patch" LS0tDQogY29uZmlndXJlLmluICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAxIAogc3Jj L3Rlc3RzdWl0ZS9NYWtlZmlsZS5hbSAgICAgICAgICAgfCAgICAyIAogc3JjL3Rlc3RzdWl0 ZS9jbG9ja3Rlc3QvTWFrZWZpbGUuYW0gfCAgIDI2ICsrKysKIHNyYy90ZXN0c3VpdGUvY2xv Y2t0ZXN0L2Nsb2NrdGVzdC5jIHwgIDIzMCArKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysKIHNyYy90ZXN0c3VpdGUvY2xvY2t0ZXN0L3J1bmluZm8uaW4gIHwgICAgMSAK IDUgZmlsZXMgY2hhbmdlZCwgMjU5IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKDQpJ bmRleDogeGVub21haS9jb25maWd1cmUuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0geGVub21haS5v cmlnL2NvbmZpZ3VyZS5pbgorKysgeGVub21haS9jb25maWd1cmUuaW4KQEAgLTY0MSw2ICs2 NDEsNyBAQCBBQ19DT05GSUdfRklMRVMoWyBcCiAgICAgICAgCXNyYy90ZXN0c3VpdGUvY3lj bGljL01ha2VmaWxlIFwKICAgICAgICAJc3JjL3Rlc3RzdWl0ZS9zd2l0Y2h0ZXN0L01ha2Vm aWxlIFwKIAlzcmMvdGVzdHN1aXRlL2lycWJlbmNoL01ha2VmaWxlIFwKKwlzcmMvdGVzdHN1 aXRlL2Nsb2NrdGVzdC9NYWtlZmlsZSBcCiAJc3JjL3V0aWxzL01ha2VmaWxlIFwKIAlzcmMv dXRpbHMvY2FuL01ha2VmaWxlIFwKICAgICAgICAJaW5jbHVkZS9NYWtlZmlsZSBcCkluZGV4 OiB4ZW5vbWFpL3NyYy90ZXN0c3VpdGUvTWFrZWZpbGUuYW0KPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g eGVub21haS5vcmlnL3NyYy90ZXN0c3VpdGUvTWFrZWZpbGUuYW0KKysrIHhlbm9tYWkvc3Jj L3Rlc3RzdWl0ZS9NYWtlZmlsZS5hbQpAQCAtMSArMSBAQAotU1VCRElSUyA9IGxhdGVuY3kg c3dpdGNoYmVuY2ggY3ljbGljIHN3aXRjaHRlc3QgaXJxYmVuY2gKK1NVQkRJUlMgPSBsYXRl bmN5IHN3aXRjaGJlbmNoIGN5Y2xpYyBzd2l0Y2h0ZXN0IGlycWJlbmNoIGNsb2NrdGVzdApJ bmRleDogeGVub21haS9zcmMvdGVzdHN1aXRlL2Nsb2NrdGVzdC9NYWtlZmlsZS5hbQo9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Ci0tLSAvZGV2L251bGwKKysrIHhlbm9tYWkvc3JjL3Rlc3RzdWl0ZS9jbG9j a3Rlc3QvTWFrZWZpbGUuYW0KQEAgLTAsMCArMSwyNiBAQAordGVzdGRpciA9ICQoZXhlY19w cmVmaXgpL3NoYXJlL3hlbm9tYWkvdGVzdHN1aXRlL2Nsb2NrdGVzdAorCitiaW5fUFJPR1JB TVMgPSBjbG9ja3Rlc3QKKworY2xvY2t0ZXN0X1NPVVJDRVMgPSBjbG9ja3Rlc3QuYworCitj bG9ja3Rlc3RfQ1BQRkxBR1MgPSAtSSQodG9wX3NyY2RpcikvaW5jbHVkZS9wb3NpeCAkKFhF Tk9fVVNFUl9DRkxBR1MpIC1JJCh0b3Bfc3JjZGlyKS9pbmNsdWRlCisKK2Nsb2NrdGVzdF9M REZMQUdTID0gJChYRU5PX1BPU0lYX1dSQVBQRVJTKSAkKFhFTk9fVVNFUl9MREZMQUdTKQor CitjbG9ja3Rlc3RfTERBREQgPSBcCisJLi4vLi4vc2tpbnMvcG9zaXgvbGlicHRocmVhZF9y dC5sYSAtbHB0aHJlYWQgLWxydAorCitpbnN0YWxsLWRhdGEtbG9jYWw6CisJJChta2luc3Rh bGxkaXJzKSAkKERFU1RESVIpJCh0ZXN0ZGlyKQorCUBzZWQgLWUncyxAZXhlY19wcmVmaXhc QCwkKGV4ZWNfcHJlZml4KSxnJyAkKHNyY2RpcikvcnVuaW5mby5pbiA+ICQoREVTVERJUikk KHRlc3RkaXIpLy5ydW5pbmZvCisJQGVjaG8gIlwkJHtERVNURElSfSQoZXhlY19wcmVmaXgp L2Jpbi94ZW5vLWxvYWQgXGBkaXJuYW1lIFwkJDBcYCBcJCQqIiA+ICQoREVTVERJUikkKHRl c3RkaXIpL3J1bgorCUBjaG1vZCAreCAkKERFU1RESVIpJCh0ZXN0ZGlyKS9ydW4KKwordW5p bnN0YWxsLWxvY2FsOgorCSQoUk0pICQoREVTVERJUikkKHRlc3RkaXIpLy5ydW5pbmZvICQo REVTVERJUikkKHRlc3RkaXIpL3J1bgorCitydW46IGFsbAorCUAkKHRvcF9zcmNkaXIpL3Nj cmlwdHMveGVuby1sb2FkIC0tdmVyYm9zZQorCitFWFRSQV9ESVNUID0gcnVuaW5mby5pbgpJ bmRleDogeGVub21haS9zcmMvdGVzdHN1aXRlL2Nsb2NrdGVzdC9jbG9ja3Rlc3QuYwo9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Ci0tLSAvZGV2L251bGwKKysrIHhlbm9tYWkvc3JjL3Rlc3RzdWl0ZS9jbG9j a3Rlc3QvY2xvY2t0ZXN0LmMKQEAgLTAsMCArMSwyMzAgQEAKKy8qCisgKiBDb3B5cmlnaHQg KEMpIDIwMDcgSmFuIEtpc3prYSA8amFuLmtpc3prYUB3ZWIuZGU+LgorICoKKyAqIFhlbm9t YWkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1v ZGlmeSBpdAorICogdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMg TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp b247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisgKiAoYXQgeW91ciBv cHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFhlbm9tYWkgaXMgZGlzdHJpYnV0 ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0CisgKiBXSVRIT1VU IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisg KiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu ICBTZWUgdGhlIEdOVQorICogR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRh aWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIFhlbm9tYWk7IGlmIG5v dCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwKKyAqIEluYy4sIDU5 IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0Eu CisgKi8KKworI2luY2x1ZGUgPGVycm5vLmg+CisjaW5jbHVkZSA8cHRocmVhZC5oPgorI2lu Y2x1ZGUgPHNpZ25hbC5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RkbGli Lmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8dGltZS5oPgorI2luY2x1ZGUg PHVuaXN0ZC5oPgorI2luY2x1ZGUgPHN5cy9tbWFuLmg+CisjaW5jbHVkZSA8c3lzL3RpbWUu aD4KKworI2lmbmRlZiBIQVZFX1JFQ0VOVF9TRVRBRkZJTklUWQorI2lmZGVmIEhBVkVfT0xE X1NFVEFGRklOSVRZCisjZGVmaW5lIHNjaGVkX3NldGFmZmluaXR5KHBpZCwgbGVuLCBtYXNr KQlzY2hlZF9zZXRhZmZpbml0eShwaWQsIG1hc2spCisjZWxzZSAvKiAhSEFWRV9PTERfU0VU QUZGSU5JVFkgKi8KKyNpZm5kZWYgX19jcHVfc2V0X3RfZGVmaW5lZAordHlwZWRlZiB1bnNp Z25lZCBsb25nIGNwdV9zZXRfdDsKKyNlbmRpZgorI2RlZmluZSBzY2hlZF9zZXRhZmZpbml0 eShwaWQsIGxlbiwgbWFzaykJZG8geyB9IHdoaWxlICgwKQorI2RlZmluZSBDUFVfWkVSTyhz ZXQpCQkJCW1lbXNldChzZXQsIDAsIHNpemVvZigqc2V0KSkKKyNkZWZpbmUgQ1BVX1NFVChu LCBzZXQpCQkJCWRvIHsgfSB3aGlsZSAoMCkKKyNlbmRpZiAvKiAhSEFWRV9PTERfU0VUQUZG SU5JVFkgKi8KKyNlbmRpZiAvKiAhSEFWRV9SRUNFTlRfU0VUQUZGSU5JVFkgKi8KKworcHRo cmVhZF9zcGlubG9ja190IGxvY2s7Cit1bnNpZ25lZCBsb25nIGxvbmcgbGFzdF9jb21tb24g PSAwOworY2xvY2tpZF90IGNsb2NrX2lkID0gQ0xPQ0tfUkVBTFRJTUU7CisKK3N0cnVjdCBw ZXJfY3B1X2RhdGEgeworICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBmaXJzdF90b2QsIGZpcnN0 X2Nsb2NrOworICAgIGludCBmaXJzdF9yb3VuZDsKKyAgICBsb25nIGxvbmcgb2Zmc2V0Owor ICAgIGRvdWJsZSBkcmlmdDsKKyAgICB1bnNpZ25lZCBsb25nIHdhcnBzOworICAgIHVuc2ln bmVkIGxvbmcgbG9uZyBtYXhfd2FycDsKKyAgICBwdGhyZWFkX3QgdGhyZWFkOworfSAqcGVy X2NwdV9kYXRhOworCitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgbG9uZyByZWFkX2Ns b2NrKGNsb2NraWRfdCBjbG9ja19pZCkKK3sKKyAgICBzdHJ1Y3QgdGltZXNwZWMgdHM7CisK KyAgICBjbG9ja19nZXR0aW1lKGNsb2NrX2lkLCAmdHMpOworICAgIHJldHVybiB0cy50dl9u c2VjICsgdHMudHZfc2VjICogMTAwMDAwMDAwMFVMTDsKK30KKworc3RhdGljIGlubGluZSB1 bnNpZ25lZCBsb25nIGxvbmcgcmVhZF9yZWZlcmVuY2VfY2xvY2sodm9pZCkKK3sKKyAgICBz dHJ1Y3QgdGltZXZhbCB0djsKKworICAgIGdldHRpbWVvZmRheSgmdHYsIE5VTEwpOworICAg IHJldHVybiB0di50dl91c2VjICogMTAwMFVMTCArIHR2LnR2X3NlYyAqIDEwMDAwMDAwMDBV TEw7Cit9CisKK3ZvaWQgY2hlY2tfcmVmZXJlbmNlKHN0cnVjdCBwZXJfY3B1X2RhdGEgKnBl cl9jcHVfZGF0YSkKK3sKKyAgICB1bnNpZ25lZCBsb25nIGxvbmcgY2xvY2tfdmFsWzEwXSwg dG9kX3ZhbFsxMF07CisgICAgbG9uZyBsb25nIGRlbHRhLCBtaW5fZGVsdGE7CisgICAgaW50 IGksIGlkeDsKKworICAgIGZvciAoaSA9IDA7IGkgPCAxMDsgaSsrKSB7CisgICAgICAgIHRv ZF92YWxbaV0gPSByZWFkX3JlZmVyZW5jZV9jbG9jaygpOworICAgICAgICBjbG9ja192YWxb aV0gPSByZWFkX2Nsb2NrKGNsb2NrX2lkKTsKKyAgICB9CisKKyAgICBtaW5fZGVsdGEgPSB0 b2RfdmFsWzFdIC0gdG9kX3ZhbFswXTsKKyAgICBpZHggPSAxOworCisgICAgZm9yIChpID0g MjsgaSA8IDEwOyBpKyspIHsKKyAgICAgICAgZGVsdGEgPSB0b2RfdmFsW2ldIC0gdG9kX3Zh bFtpLTFdOworICAgICAgICBpZiAoZGVsdGEgPCBtaW5fZGVsdGEpIHsKKyAgICAgICAgICAg IG1pbl9kZWx0YSA9IGRlbHRhOworICAgICAgICAgICAgaWR4ID0gaTsKKyAgICAgICAgfQor ICAgIH0KKworICAgIGlmIChwZXJfY3B1X2RhdGEtPmZpcnN0X3JvdW5kKSB7CisgICAgICAg IHBlcl9jcHVfZGF0YS0+Zmlyc3Rfcm91bmQgPSAwOworCisgICAgICAgIHBlcl9jcHVfZGF0 YS0+Zmlyc3RfdG9kID0gdG9kX3ZhbFtpZHhdOworICAgICAgICBwZXJfY3B1X2RhdGEtPmZp cnN0X2Nsb2NrID0gY2xvY2tfdmFsW2lkeF07CisgICAgfSBlbHNlCisgICAgICAgIHBlcl9j cHVfZGF0YS0+ZHJpZnQgPQorICAgICAgICAgICAgKGNsb2NrX3ZhbFtpZHhdIC0gcGVyX2Nw dV9kYXRhLT5maXJzdF9jbG9jaykgLworICAgICAgICAgICAgKGRvdWJsZSkodG9kX3ZhbFtp ZHhdIC0gcGVyX2NwdV9kYXRhLT5maXJzdF90b2QpIC0gMTsKKworICAgIHBlcl9jcHVfZGF0 YS0+b2Zmc2V0ID0gY2xvY2tfdmFsW2lkeF0gLSB0b2RfdmFsW2lkeF07Cit9CisKK3ZvaWQg Y2hlY2tfdGltZV93YXJwcyhzdHJ1Y3QgcGVyX2NwdV9kYXRhICpwZXJfY3B1X2RhdGEpCit7 CisgICAgaW50IGk7CisgICAgdW5zaWduZWQgbG9uZyBsb25nIGxhc3QsIG5vdzsKKyAgICBs b25nIGxvbmcgaW5jcjsKKworICAgIGZvciAoaSA9IDA7IGkgPCAxMDA7IGkrKykgeworICAg ICAgICBwdGhyZWFkX3NwaW5fbG9jaygmbG9jayk7CisgICAgICAgIG5vdyA9IHJlYWRfY2xv Y2soY2xvY2tfaWQpOworICAgICAgICBsYXN0ID0gbGFzdF9jb21tb247CisgICAgICAgIGxh c3RfY29tbW9uID0gbm93OworICAgICAgICBwdGhyZWFkX3NwaW5fdW5sb2NrKCZsb2NrKTsK KworICAgICAgICBpbmNyID0gbm93IC0gbGFzdDsKKyAgICAgICAgaWYgKGluY3IgPCAwKSB7 CisgICAgICAgICAgICBwZXJfY3B1X2RhdGEtPndhcnBzKys7CisgICAgICAgICAgICBpZiAo aW5jciA+IHBlcl9jcHVfZGF0YS0+bWF4X3dhcnApCisgICAgICAgICAgICAgICAgcGVyX2Nw dV9kYXRhLT5tYXhfd2FycCA9IGluY3I7CisgICAgICAgIH0KKyAgICB9Cit9CisKK3ZvaWQg KmNwdV90aHJlYWQodm9pZCAqYXJnKQoreworICAgIGludCBjcHVpZCA9IChsb25nKWFyZzsK KyAgICBzdHJ1Y3Qgc2NoZWRfcGFyYW0gcGFyYW0gPSB7IC5zY2hlZF9wcmlvcml0eSA9IDEg fTsKKyAgICBzdHJ1Y3QgdGltZXNwZWMgZGVsYXkgPSB7IDAsIDAgfTsKKyAgICBjcHVfc2V0 X3QgY3B1X3NldDsKKworICAgIHNyYW5kb20ocmVhZF9yZWZlcmVuY2VfY2xvY2soKSk7CisK KyAgICBDUFVfWkVSTygmY3B1X3NldCk7CisgICAgQ1BVX1NFVChjcHVpZCwgJmNwdV9zZXQp OworICAgIHNjaGVkX3NldGFmZmluaXR5KDAsIHNpemVvZihjcHVfc2V0KSwgJmNwdV9zZXQp OworICAgIHB0aHJlYWRfc2V0c2NoZWRwYXJhbShwdGhyZWFkX3NlbGYoKSwgU0NIRURfRklG TywgJnBhcmFtKTsKKworICAgIHdoaWxlICgxKSB7CisgICAgICAgIGNoZWNrX3JlZmVyZW5j ZSgmcGVyX2NwdV9kYXRhW2NwdWlkXSk7CisKKyAgICAgICAgY2hlY2tfdGltZV93YXJwcygm cGVyX2NwdV9kYXRhW2NwdWlkXSk7CisKKyAgICAgICAgZGVsYXkudHZfbnNlYyA9IDEwMDAw MDAgKyByYW5kb20oKSAqIDQwMDAwMDA7CisgICAgICAgIG5hbm9zbGVlcCgmZGVsYXksIE5V TEwpOworICAgIH0KK30KKwordm9pZCBzaWdoYW5kKGludCBzaWduYWwpCit7CisgICAgZXhp dCgwKTsKK30KKworaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKK3sKKyAgICBp bnQgY3B1cyA9IHN5c2NvbmYoX1NDX05QUk9DRVNTT1JTX09OTE4pOworICAgIGludCBpOwor ICAgIGNoYXIgYzsKKworICAgIHdoaWxlICgoYyA9IGdldG9wdChhcmdjLGFyZ3YsIkM6VDoi KSkgIT0gRU9GKQorICAgICAgICBzd2l0Y2ggKGMpIHsKKyAgICAgICAgICAgIGNhc2UgJ0Mn OgorICAgICAgICAgICAgICAgIGNsb2NrX2lkID0gYXRvaShvcHRhcmcpOworICAgICAgICAg ICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBjYXNlICdUJzoKKyAgICAgICAgICAgICAg ICBhbGFybShhdG9pKG9wdGFyZykpOworICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAg ICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAidXNh Z2U6IGNsb2NrdGVzdCBbb3B0aW9uc11cbiIKKyAgICAgICAgICAgICAgICAgICAgICAgICIg IFstQyA8Y2xvY2tfaWQ+XSAgICAgICAgICAgICAgIyB0ZXN0ZWQgY2xvY2ssIGRlZmF1bHQ9 JWQgKENMT0NLX1JFQUxUSU1FKVxuIgorICAgICAgICAgICAgICAgICAgICAgICAgIiAgWy1U IDx0ZXN0X2R1cmF0aW9uX3NlY29uZHM+XSAjIGRlZmF1bHQ9MCwgc28gXkMgdG8gZW5kXG4i LAorICAgICAgICAgICAgICAgICAgICAgICAgQ0xPQ0tfUkVBTFRJTUUpOworICAgICAgICAg ICAgICAgIGV4aXQoMik7CisgICAgICAgIH0KKworICAgIG1sb2NrYWxsKE1DTF9DVVJSRU5U IHwgTUNMX0ZVVFVSRSk7CisKKyAgICBzaWduYWwoU0lHQUxSTSwgc2lnaGFuZCk7CisKKyAg ICBwdGhyZWFkX3NwaW5faW5pdCgmbG9jaywgMCk7CisKKyAgICBwZXJfY3B1X2RhdGEgPSBt YWxsb2Moc2l6ZW9mKCpwZXJfY3B1X2RhdGEpICogY3B1cyk7CisgICAgaWYgKCFwZXJfY3B1 X2RhdGEpIHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICIlc1xuIiwgc3RyZXJyb3IoRU5P TUVNKSk7CisgICAgICAgIGV4aXQoMSk7CisgICAgfQorICAgIG1lbXNldChwZXJfY3B1X2Rh dGEsIDAsIHNpemVvZigqcGVyX2NwdV9kYXRhKSAqIGNwdXMpOworCisgICAgZm9yIChpID0g MDsgaSA8IGNwdXM7IGkrKykgeworICAgICAgICBwZXJfY3B1X2RhdGFbaV0uZmlyc3Rfcm91 bmQgPSAxOworICAgICAgICBwdGhyZWFkX2NyZWF0ZSgmcGVyX2NwdV9kYXRhW2ldLnRocmVh ZCwgTlVMTCwgY3B1X3RocmVhZCwKKyAgICAgICAgICAgICAgICAgICAgKHZvaWQgKilpKTsK KyAgICB9CisKKyAgICBwcmludGYoIj09IFRlc3RlZCBjbG9jazogJWQgKCIsIGNsb2NrX2lk KTsKKyAgICBzd2l0Y2ggKGNsb2NrX2lkKSB7CisgICAgICAgIGNhc2UgQ0xPQ0tfUkVBTFRJ TUU6CisgICAgICAgICAgICBwcmludGYoIkNMT0NLX1JFQUxUSU1FIik7CisgICAgICAgICAg ICBicmVhazsKKworICAgICAgICBjYXNlIENMT0NLX01PTk9UT05JQzoKKyAgICAgICAgICAg IHByaW50ZigiQ0xPQ0tfTU9OT1RPTklDIik7CisgICAgICAgICAgICBicmVhazsKKworICAg ICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcHJpbnRmKCI8dW5rbm93bj4iKTsKKyAgICAg ICAgICAgIGJyZWFrOworICAgIH0KKyAgICBwcmludGYoIilcbkNQVSAgICAgIFRvRCBvZmZz ZXQgW3VzXSBUb0QgZHJpZnQgW3VzL3NdICAgICAgd2FycHMgbWF4IGRlbHRhIFt1c11cbiIK KyAgICAgICAgICAgICAgIi0tLSAtLS0tLS0tLS0tLS0tLS0tLS0tLSAtLS0tLS0tLS0tLS0t LS0tIC0tLS0tLS0tLS0gLS0tLS0tLS0tLS0tLS1cbiIpOworCisgICAgd2hpbGUgKDEpIHsK KyAgICAgICAgZm9yIChpID0gMDsgaSA8IGNwdXM7IGkrKykKKyAgICAgICAgICAgIHByaW50 ZigiJTNkICUyMC4xZiAlMTYuM2YgJTEwbHUgJTE0LjFmXG4iLAorICAgICAgICAgICAgICAg ICAgIGksCisgICAgICAgICAgICAgICAgICAgcGVyX2NwdV9kYXRhW2ldLm9mZnNldC8xMDAw LjAsCisgICAgICAgICAgICAgICAgICAgcGVyX2NwdV9kYXRhW2ldLmRyaWZ0ICogMTAwMDAw MC4wLAorICAgICAgICAgICAgICAgICAgIHBlcl9jcHVfZGF0YVtpXS53YXJwcywKKyAgICAg ICAgICAgICAgICAgICBwZXJfY3B1X2RhdGFbaV0ubWF4X3dhcnAvMTAwMC4wKTsKKyAgICAg ICAgdXNsZWVwKDI1MDAwMCk7CisgICAgICAgIHByaW50ZigiXDAzM1slZEEiLCBjcHVzKTsK KyAgICB9Cit9CkluZGV4OiB4ZW5vbWFpL3NyYy90ZXN0c3VpdGUvY2xvY2t0ZXN0L3J1bmlu Zm8uaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQotLS0gL2Rldi9udWxsCisrKyB4ZW5vbWFpL3NyYy90ZXN0 c3VpdGUvY2xvY2t0ZXN0L3J1bmluZm8uaW4KQEAgLTAsMCArMSBAQAorY2xvY2t0ZXN0OnBv c2l4OiFAZXhlY19wcmVmaXhAL2Jpbi9jbG9ja3Rlc3Q7cG9wYWxsOmNvbnRyb2xfYwo= --------------040305050105080701040201-- --------------enigBBFA39360478F59E35EACEC6 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.7 (MingW32) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFGNbYAniDOoMHTA+kRAnl3AJ0aF5L/oOVyghUvEbzw6of2a3wtyACeMzHr Ptix+oMwNpLcOOb89zysAvI= =cmpM -----END PGP SIGNATURE----- --------------enigBBFA39360478F59E35EACEC6--