From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 30308 invoked by alias); 18 Sep 2012 15:19:02 -0000 Received: (qmail 30291 invoked by uid 22791); 18 Sep 2012 15:19:00 -0000 X-SWARE-Spam-Status: No, hits=-2.9 required=5.0 tests=AWL,BAYES_00,KHOP_RCVD_UNTRUST,KHOP_THREADED,RCVD_IN_HOSTKARMA_W,RCVD_IN_HOSTKARMA_WL X-Spam-Check-By: sourceware.org Received: from eu1sys200aog117.obsmtp.com (HELO eu1sys200aog117.obsmtp.com) (207.126.144.143) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Tue, 18 Sep 2012 15:18:46 +0000 Received: from beta.dmz-eu.st.com ([164.129.1.35]) (using TLSv1) by eu1sys200aob117.postini.com ([207.126.147.11]) with SMTP ID DSNKUFiQ0WnVsVKuQq1dX+Hcyi9pKL1U0WEJ@postini.com; Tue, 18 Sep 2012 15:18:46 UTC Received: from zeta.dmz-eu.st.com (zeta.dmz-eu.st.com [164.129.230.9]) by beta.dmz-eu.st.com (STMicroelectronics) with ESMTP id D89CE245; Tue, 18 Sep 2012 15:18:22 +0000 (GMT) Received: from Webmail-eu.st.com (safex1hubcas6.st.com [10.75.90.73]) by zeta.dmz-eu.st.com (STMicroelectronics) with ESMTP id 9576547E1; Tue, 18 Sep 2012 15:18:22 +0000 (GMT) Received: from SAFEX1MAIL1.st.com ([10.75.90.1]) by Safex1hubcas6.st.com ([10.75.90.73]) with mapi; Tue, 18 Sep 2012 17:18:22 +0200 From: Giuseppe MONTALTO To: Tom Tromey Cc: "Abid, Hafiz" , "gdb-patches@sourceware.org" Date: Tue, 18 Sep 2012 15:19:00 -0000 Subject: RE: [PATCH] enhancement of mi_cmd_data_write_memory_bytes for filling memory regions (was [PATCH] new MI command for pattern filling of memory regions) Message-ID: <76FE3225DF13124EA2D05B290B624C95E66B003EA8@SAFEX1MAIL1.st.com> References: <76FE3225DF13124EA2D05B290B624C95E65F2D466E@SAFEX1MAIL1.st.com> <87sjf9rzr0.fsf@fleche.redhat.com> <76FE3225DF13124EA2D05B290B624C95E65FECE356@SAFEX1MAIL1.st.com> <871umsqgu8.fsf@fleche.redhat.com> <76FE3225DF13124EA2D05B290B624C95E65FECE48F@SAFEX1MAIL1.st.com> <87397624b9.fsf@fleche.redhat.com> <76FE3225DF13124EA2D05B290B624C95E662A6921F@SAFEX1MAIL1.st.com> <76FE3225DF13124EA2D05B290B624C95E6632A4256@SAFEX1MAIL1.st.com> <878vcc1s9f.fsf@fleche.redhat.com> In-Reply-To: <878vcc1s9f.fsf@fleche.redhat.com> Content-Type: multipart/mixed; boundary="_002_76FE3225DF13124EA2D05B290B624C95E66B003EA8SAFEX1MAIL1st_" MIME-Version: 1.0 X-IsSubscribed: yes Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2012-09/txt/msg00365.txt.bz2 --_002_76FE3225DF13124EA2D05B290B624C95E66B003EA8SAFEX1MAIL1st_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Content-length: 2286 Hi Tom, Thanks for your comments: I've reworked the patch taking them into account. I have also updated it, so that it should now fit the current HEAD=20 Please, find it attached. Regards, Giuseppe. > -----Original Message----- > From: Tom Tromey [mailto:tromey@redhat.com] > Sent: Friday, September 14, 2012 6:31 PM > To: Giuseppe MONTALTO > Cc: Abid, Hafiz; gdb-patches@sourceware.org > Subject: Re: [PATCH] enhancement of mi_cmd_data_write_memory_bytes > for filling memory regions (was [PATCH] new MI command for pattern filling > of memory regions) >=20 > >>>>> "Giuseppe" =3D=3D Giuseppe MONTALTO > writes: >=20 > Giuseppe> New version of the patch. >=20 > I'm sorry about the delay on this. >=20 > I know it feels uncomfortable, but it really is good to ping patches -- s= ay every > week or so. Otherwise they tend to slide off the radar. >=20 > Giuseppe> + int len, r, i, steps, reminder; long int count, j; >=20 > I think now size_t is preferred. (This changed since your patch > submission.) >=20 > Typo: should be "remainder", not "reminder". >=20 > Giuseppe> + count =3D strtol (argv[2], NULL, 10); >=20 > I think strtoul instead. >=20 > Giuseppe> + if (len < count) > Giuseppe> + { > Giuseppe> + /* pattern is made of less bytes than count: > Giuseppe> + repeat pattern to fill memory. */ >=20 > Comments should start with an uppercase letter. >=20 > Giuseppe> + else > Giuseppe> + { > Giuseppe> + /* pattern is longer than (or equal to) count: > Giuseppe> + just copy len bytes. */ >=20 > Likewise. >=20 > Giuseppe> + xfree (databuf); >=20 > It seems like you could do less work for the usual case where len=3D=3Dco= unt. > That is, avoid the extra malloc and memcpy. >=20 > Giuseppe> +set testfile "mi-read-memory" > Giuseppe> +set srcfile ${testfile}.c > Giuseppe> +set binfile ${objdir}/${subdir}/${testfile} >=20 > Use standard_testfile now. >=20 > Giuseppe> +if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile= }" > executable {debug additional_flags=3D-DFAKEARGV}] !=3D "" } { > Giuseppe> + untested mi-read-memory.exp >=20 > Use build_executable instead and don't call untested. >=20 > Giuseppe> +return 0 >=20 > No need for a return at the end of a .exp file. >=20 > Tom --_002_76FE3225DF13124EA2D05B290B624C95E66B003EA8SAFEX1MAIL1st_ Content-Type: application/octet-stream; name="mi_cmd_data_write_memory_bytes.patch" Content-Description: mi_cmd_data_write_memory_bytes.patch Content-Disposition: attachment; filename="mi_cmd_data_write_memory_bytes.patch"; size=6806; creation-date="Tue, 18 Sep 2012 15:17:11 GMT"; modification-date="Tue, 18 Sep 2012 15:08:33 GMT" Content-Transfer-Encoding: base64 Content-length: 9228 IGdkYi9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAg IDUgKysNCiBnZGIvbWkvbWktbWFpbi5jICAgICAgICAgICAgICAgICAgICAg ICAgfCAgIDYxICsrKysrKysrKysrKysrKysrKysrKystLS0tLQ0KIGdkYi90 ZXN0c3VpdGUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICB8ICAgIDQgKysN CiBnZGIvdGVzdHN1aXRlL2dkYi5taS9taS1maWxsLW1lbW9yeS5leHAgfCAg IDY4ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysNCiA0IGZpbGVz IGNoYW5nZWQsIDEyNyBpbnNlcnRpb25zKCspLCAxMSBkZWxldGlvbnMoLSkN Cg0KZGlmZiAtLWdpdCBhL2dkYi9DaGFuZ2VMb2cgYi9nZGIvQ2hhbmdlTG9n DQppbmRleCA0YWIxNWM0Li4zYTAyNjhlIDEwMDY0NA0KLS0tIGEvZ2RiL0No YW5nZUxvZw0KKysrIGIvZ2RiL0NoYW5nZUxvZw0KQEAgLTEsMyArMSw4IEBA DQorMjAxMi0wOS0xOCAgR2l1c2VwcGUgTW9udGFsdG8gIDxnaXVzZXBwZS5t b250YWx0b0BzdC5jb20+DQorDQorCSogbWkvbWktbWFpbi5jICAobWlfY21k X2RhdGFfd3JpdGVfbWVtb3J5KTogYWRkaXRpb25hbA0KKwlwYXJhbWV0ZXIg Zm9yIHBhdHRlcm4gZmlsbGluZyBvZiBtZW1vcnkgcmVnaW9ucw0KKw0KIDIw MTItMDktMTcgIE1pa2UgV3JpZ2h0b24gIDx3cmlnaHRvbkBjb2Rlc291cmNl cnkuY29tPg0KIA0KIAkqIE1BSU5UQUlORVJTIChXcml0ZSBBZnRlciBBcHBy b3ZhbCk6IEFkZCAiTWlrZSBXcmlnaHRvbiIuDQpkaWZmIC0tZ2l0IGEvZ2Ri L21pL21pLW1haW4uYyBiL2dkYi9taS9taS1tYWluLmMNCmluZGV4IGYxZDIx YmMuLjVmNjcwYzIgMTAwNjQ0DQotLS0gYS9nZGIvbWkvbWktbWFpbi5jDQor KysgYi9nZGIvbWkvbWktbWFpbi5jDQpAQCAtMTY1Niw3ICsxNjU2LDggQEAg bWlfY21kX2RhdGFfd3JpdGVfbWVtb3J5IChjaGFyICpjb21tYW5kLCBjaGFy ICoqYXJndiwgaW50IGFyZ2MpDQogLyogSW1wbGVtZW50YXRpb24gb2YgdGhl IC1kYXRhLXdyaXRlLW1lbW9yeS1ieXRlcyBjb21tYW5kLg0KIA0KICAgIEFE RFI6IHN0YXJ0IGFkZHJlc3MNCi0gICBEQVRBOiBzdHJpbmcgb2YgYnl0ZXMg dG8gd3JpdGUgYXQgdGhhdCBhZGRyZXNzLiAgKi8NCisgICBEQVRBOiBzdHJp bmcgb2YgYnl0ZXMgdG8gd3JpdGUgYXQgdGhhdCBhZGRyZXNzDQorICAgQ09V TlQ6IG51bWJlciBvZiBieXRlcyB0byBiZSBmaWxsZWQgKGRlY2ltYWwgaW50 ZWdlcikuICAqLw0KIA0KIHZvaWQNCiBtaV9jbWRfZGF0YV93cml0ZV9tZW1v cnlfYnl0ZXMgKGNoYXIgKmNvbW1hbmQsIGNoYXIgKiphcmd2LCBpbnQgYXJn YykNCkBAIC0xNjY0LDMwICsxNjY1LDY4IEBAIG1pX2NtZF9kYXRhX3dyaXRl X21lbW9yeV9ieXRlcyAoY2hhciAqY29tbWFuZCwgY2hhciAqKmFyZ3YsIGlu dCBhcmdjKQ0KICAgQ09SRV9BRERSIGFkZHI7DQogICBjaGFyICpjZGF0YTsN CiAgIGdkYl9ieXRlICpkYXRhOw0KLSAgaW50IGxlbiwgciwgaTsNCisgIGdk Yl9ieXRlICpkYXRhYnVmOw0KKyAgc2l6ZV90IGxlbiwgciwgaSwgc3RlcHMs IHJlbWFpbmRlcjsNCisgIGxvbmcgaW50IGNvdW50LCBqOw0KICAgc3RydWN0 IGNsZWFudXAgKmJhY2tfdG87DQogDQotICBpZiAoYXJnYyAhPSAyKQ0KLSAg ICBlcnJvciAoXygiVXNhZ2U6IEFERFIgREFUQS4iKSk7DQorICBpZiAoYXJn YyAhPSAyICYmIGFyZ2MgIT0gMykNCisgICAgZXJyb3IgKF8oIlVzYWdlOiBB RERSIERBVEEgW0NPVU5UXS4iKSk7DQogDQogICBhZGRyID0gcGFyc2VfYW5k X2V2YWxfYWRkcmVzcyAoYXJndlswXSk7DQogICBjZGF0YSA9IGFyZ3ZbMV07 DQogICBsZW4gPSBzdHJsZW4gKGNkYXRhKS8yOw0KKyAgaWYgKGFyZ2MgPT0g MykNCisgICAgY291bnQgPSBzdHJ0b3VsIChhcmd2WzJdLCBOVUxMLCAxMCk7 DQorICBlbHNlDQorICAgIGNvdW50ID0gbGVuOw0KIA0KLSAgZGF0YSA9IHht YWxsb2MgKGxlbik7DQotICBiYWNrX3RvID0gbWFrZV9jbGVhbnVwICh4ZnJl ZSwgZGF0YSk7DQorICBkYXRhYnVmID0geG1hbGxvYyAobGVuICogc2l6ZW9m IChnZGJfYnl0ZSkpOw0KIA0KICAgZm9yIChpID0gMDsgaSA8IGxlbjsgKytp KQ0KICAgICB7DQogICAgICAgaW50IHg7DQogICAgICAgc3NjYW5mIChjZGF0 YSArIGkgKiAyLCAiJTAyeCIsICZ4KTsNCi0gICAgICBkYXRhW2ldID0gKGdk Yl9ieXRlKSB4Ow0KKyAgICAgIGRhdGFidWZbaV0gPSAoZ2RiX2J5dGUpIHg7 DQogICAgIH0NCiANCi0gIHIgPSB0YXJnZXRfd3JpdGVfbWVtb3J5IChhZGRy LCBkYXRhLCBsZW4pOw0KKyAgaWYgKGxlbiA8IGNvdW50KQ0KKyAgICB7DQor ICAgICAgLyogUGF0dGVybiBpcyBtYWRlIG9mIGxlc3MgYnl0ZXMgdGhhbiBj b3VudDogDQorICAgICAgICAgcmVwZWF0IHBhdHRlcm4gdG8gZmlsbCBtZW1v cnkuICAqLw0KKyAgICAgIGRhdGEgPSB4bWFsbG9jIChjb3VudCk7DQorICAg ICAgYmFja190byA9IG1ha2VfY2xlYW51cCAoeGZyZWUsIGRhdGEpOw0KKyAg ICANCisgICAgICBzdGVwcyA9IGNvdW50IC8gbGVuOw0KKyAgICAgIHJlbWFp bmRlciA9IGNvdW50ICUgbGVuOyAvKiB0aGVyZSBtYXkgYmUgc29tZSBzcGFy ZSBieXRlcy4gICovDQorICAgICAgZm9yIChqID0gMDsgaiA8IHN0ZXBzOyBq KyspDQorICAgICAgICBtZW1jcHkgKGRhdGEgKyBqICogbGVuLCBkYXRhYnVm LCBsZW4pOw0KKw0KKyAgICAgIGlmIChyZW1haW5kZXIgPiAwKSAvKiBjb3B5 IHNwYXJlIGJ5dGVzIHRvby4gICovDQorICAgICAgICBtZW1jcHkgKGRhdGEg KyBzdGVwcyAqIGxlbiwgZGF0YWJ1ZiwgcmVtYWluZGVyKTsNCisgICAgfQ0K KyAgZWxzZSBpZiAobGVuID4gY291bnQpDQorICAgIHsNCisgICAgICAvKiBQ YXR0ZXJuIGlzIGxvbmdlciB0aGFuIGNvdW50OiANCisgICAgICAgICBqdXN0 IGNvcHkgbGVuIGJ5dGVzLiAgKi8NCisgICAgICBkYXRhID0geG1hbGxvYyAo bGVuKTsNCisgICAgICBiYWNrX3RvID0gbWFrZV9jbGVhbnVwICh4ZnJlZSwg ZGF0YSk7DQorICAgICAgbWVtY3B5IChkYXRhLCBkYXRhYnVmLCBsZW4pOw0K KyAgICB9DQorICBlbHNlDQorICAgIHsNCisgICAgICAvKiBQYXR0ZXJuIGlz IGVxdWFsIHRvIGNvdW50OiANCisgICAgICAgICB3ZSBjYW4ganVzdCB1c2Ug ZGF0YWJ1Zi4gICovDQorICAgICAgYmFja190byA9IG1ha2VfY2xlYW51cCAo eGZyZWUsIGRhdGEpOw0KKyAgICAgIGRhdGEgPSBkYXRhYnVmOw0KKyAgICB9 DQorDQorICByID0gdGFyZ2V0X3dyaXRlX21lbW9yeSAoYWRkciwgZGF0YSwg Y291bnQpOw0KICAgaWYgKHIgIT0gMCkNCiAgICAgZXJyb3IgKF8oIkNvdWxk IG5vdCB3cml0ZSBtZW1vcnkiKSk7DQogDQorICB4ZnJlZSAoZGF0YWJ1Zik7 DQorDQogICBkb19jbGVhbnVwcyAoYmFja190byk7DQogfQ0KIA0KQEAgLTIw OTcsMTAgKzIxMzYsMTAgQEAgbWlfY21kX2V4ZWN1dGUgKHN0cnVjdCBtaV9w YXJzZSAqcGFyc2UpDQogDQogICBjdXJyZW50X2NvbnRleHQgPSBwYXJzZTsN CiANCi0gIGlmIChwYXJzZS0+Y21kLT5zdXBwcmVzc19ub3RpZmljYXRpb24g IT0gTlVMTCkNCisgIGlmIChzdHJuY21wIChwYXJzZS0+Y29tbWFuZCwgImJy ZWFrLSIsIHNpemVvZiAoImJyZWFrLSIpIC0gMSApID09IDApDQogICAgIHsN Ci0gICAgICBtYWtlX2NsZWFudXBfcmVzdG9yZV9pbnRlZ2VyIChwYXJzZS0+ Y21kLT5zdXBwcmVzc19ub3RpZmljYXRpb24pOw0KLSAgICAgICpwYXJzZS0+ Y21kLT5zdXBwcmVzc19ub3RpZmljYXRpb24gPSAxOw0KKyAgICAgIG1ha2Vf Y2xlYW51cF9yZXN0b3JlX2ludGVnZXIgKCZtaV9zdXBwcmVzc19icmVha3Bv aW50X25vdGlmaWNhdGlvbnMpOw0KKyAgICAgIG1pX3N1cHByZXNzX2JyZWFr cG9pbnRfbm90aWZpY2F0aW9ucyA9IDE7DQogICAgIH0NCiANCiAgIGlmIChw YXJzZS0+Y21kLT5hcmd2X2Z1bmMgIT0gTlVMTCkNCmRpZmYgLS1naXQgYS9n ZGIvdGVzdHN1aXRlL0NoYW5nZUxvZyBiL2dkYi90ZXN0c3VpdGUvQ2hhbmdl TG9nDQppbmRleCBiNDU4YWJhLi40MmY2NmJlIDEwMDY0NA0KLS0tIGEvZ2Ri L3Rlc3RzdWl0ZS9DaGFuZ2VMb2cNCisrKyBiL2dkYi90ZXN0c3VpdGUvQ2hh bmdlTG9nDQpAQCAtMSwzICsxLDcgQEANCisyMDEyLTA5LTE4ICBHaXVzZXBw ZSBNb250YWx0byAgPGdpdXNlcHBlLm1vbnRhbHRvQHN0LmNvbT4NCisNCisJ KiBnZGIubWkvbWktZmlsbC1tZW1vcnkuZXhwOiBOZXcgdGVzdC4NCisNCiAy MDEyLTA5LTE3ICBZYW8gUWkgIDx5YW9AY29kZXNvdXJjZXJ5LmNvbT4NCiAN CiAJKiBnZGIuYmFzZS9saXN0LmV4cCAoc2V0X2xpc3RzaXplKTogRG9uJ3Qg c2V0IGFyZyB0byAidW5saW1pdGVkIg0KZGlmZiAtLWdpdCBhL2dkYi90ZXN0 c3VpdGUvZ2RiLm1pL21pLWZpbGwtbWVtb3J5LmV4cCBiL2dkYi90ZXN0c3Vp dGUvZ2RiLm1pL21pLWZpbGwtbWVtb3J5LmV4cA0KbmV3IGZpbGUgbW9kZSAx MDA2NDQNCmluZGV4IDAwMDAwMDAuLjNkZjZhOTYNCi0tLSAvZGV2L251bGwN CisrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLm1pL21pLWZpbGwtbWVtb3J5LmV4 cA0KQEAgLTAsMCArMSw2OCBAQA0KKyMgQ29weXJpZ2h0IChDKSAyMDEyIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLg0KKyMgQ29weXJpZ2h0IChD KSAyMDEyIFNUTWljcm9lbGVjdHJvbmljcw0KKw0KKyMgVGhpcyBwcm9ncmFt IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu ZC9vciBtb2RpZnkNCisjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQorIyB0 aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAz IG9mIHRoZSBMaWNlbnNlLCBvcg0KKyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkg bGF0ZXIgdmVyc2lvbi4NCisjDQorIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJp YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwNCisj IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp bXBsaWVkIHdhcnJhbnR5IG9mDQorIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklU TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQorIyBH TlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLg0K KyMNCisjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQorIyBhbG9uZyB3aXRoIHRo aXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcv bGljZW5zZXMvPi4NCisNCisjDQorIyB0ZXN0IGJhc2ljIE1hY2hpbmUgaW50 ZXJmYWNlIChNSSkgb3BlcmF0aW9ucw0KKyMNCisjIFZlcmlmeSB0aGF0LCB1 c2luZyB0aGUgTUksIHdlIGNhbiBsb2FkIGEgcHJvZ3JhbSBhbmQgZG8NCisj IG90aGVyIGJhc2ljIHRoaW5ncyB0aGF0IGFyZSB1c2VkIGJ5IGFsbCB0ZXN0 IGZpbGVzIHRocm91Z2ggIG1pX2dkYl9leGl0LA0KKyMgbWlfZ2RiX3N0YXJ0 LCBtaV9kZWxldGVfYnJlYWtwb2ludHMsIG1pX2dkYl9yZWluaXRpYWxpemVf ZGlyIGFuZA0KKyMgbWlfZ2RiX2xvYWQsIHNvIHdlIGNhbiBzYWZlbHkgdXNl IHRob3NlLg0KKyMNCisjIFRoZSBnb2FsIGlzIG5vdCB0byB0ZXN0IGdkYiBm dW5jdGlvbmFsaXR5LCB3aGljaCBpcyBkb25lIGJ5IG90aGVyIHRlc3RzLA0K KyMgYnV0IHRoZSBjb21tYW5kIHN5bnRheCBhbmQgY29ycmVjdCBvdXRwdXQg cmVzcG9uc2UgdG8gTUkgb3BlcmF0aW9ucy4NCisjIA0KKyMgYWRkZWQgZm9y IHRlc3RpbmcgdGhlIC1kYXRhLXdyaXRlLW1lbW9yeS1ieXRlcyBNSSBjb21t YW5kIGVuaGFuY2VtZW50cw0KKyMNCisNCitsb2FkX2xpYiBtaS1zdXBwb3J0 LmV4cA0KK3NldCBNSUZMQUdTICItaT1taSINCisNCitnZGJfZXhpdA0KK2lm IFttaV9nZGJfc3RhcnRdIHsNCisgICAgY29udGludWUNCit9DQorDQorc3Rh bmRhcmRfdGVzdGZpbGUgIm1pLXJlYWQtbWVtb3J5Ig0KKyANCitpZiB7W2J1 aWxkX2V4ZWN1dGFibGUgJHt0ZXN0ZmlsZX0uZXhwICR7YmluZmlsZX0gJHtz cmNmaWxlfS5jIHtkZWJ1ZyBhZGRpdGlvbmFsX2ZsYWdzPS1ERkFLRUFSR1Z9 XSA9PSAtMX0gew0KKyAgICByZXR1cm4gLTENCit9DQorDQorbWlfcnVuX3Rv X21haW4NCittaV9uZXh0X3RvICJtYWluIiAiIiAibWktcmVhZC1tZW1vcnku YyIgIjIwIiAibmV4dCBhdCBtYWluIg0KKw0KK21pX2dkYl90ZXN0ICIxLWRh dGEtd3JpdGUtbWVtb3J5LWJ5dGVzIlwNCisJIjFcXFxeZXJyb3IsbXNnPVwi VXNhZ2U6IEFERFIgREFUQSBcXFxbQ09VTlRcXFxdXC5cIiJcDQorCSJubyBh cmd1bWVudHMiDQorDQorbWlfZ2RiX3Rlc3QgIjItZGF0YS13cml0ZS1tZW1v cnktYnl0ZXMgOCJcDQorCSIyXFxcXmVycm9yLG1zZz1cIlVzYWdlOiBBRERS IERBVEEgXFxcW0NPVU5UXFxcXVwuXCIiXA0KKwkib25lIGFyZ3VtZW50IG1p c3NpbmciDQorDQorbWlfZ2RiX3Rlc3QgIjMtZGF0YS13cml0ZS1tZW1vcnkt Ynl0ZXMgXCRwYyBhYiJcDQorCSIzXFxcXmRvbmUiIFwNCisJIm1lbW9yeSBz dWNjZXNzZnVsbHkgd3JpdHRlbiINCisNCittaV9nZGJfdGVzdCAiNC1kYXRh LXdyaXRlLW1lbW9yeS1ieXRlcyBcJHBjIGFiIDgiXA0KKwkiNFxcXF5kb25l IiBcDQorCSJtZW1vcnkgc3VjY2Vzc2Z1bGx5IGZpbGxlZCAoOCBieXRlcyki DQorDQorbWlfZ2RiX3Rlc3QgIjUtaW50ZXJwcmV0ZXItZXhlYyBjb25zb2xl IFwieCBcJHBjXCIiIFwNCisgICAgIi4qMHhhYmFiYWJhYi4qIiBcDQorICAg ICJwYXR0ZXJuIGNvcnJlY3RseSByZWFkIGZyb20gbWVtb3J5Ig0KKw0KK21p X2dkYl9leGl0DQo= --_002_76FE3225DF13124EA2D05B290B624C95E66B003EA8SAFEX1MAIL1st_--