--_004_4D90C9802010804yahoocombr_ Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Take a look at my old code (almost than 10 years old). An usage example: delay_ms 1000 GotoXY 1,1 PutsS "Copyright(c)2003" GotoXY 1,2 PutsS "Isaac Bavaresco" delay_ms 1000 "PutsS" prints a constant string from FLASH. "Puts ," prints a string . is an "access modifier": "C" means in code (FLASH), "D" means data (RAM), "E" means EEPROM and "V" means a pointer stored in a variable in RAM. Ex.: 1) Puts "C", Label .... Label: dt "xyz" 2) udata StringVar res 10 .... Puts "D", StringVar 3) udata StrPtr res 2 .... Puts "V", StrPtr This set of routines define and use two global pointers, PtrA and PtrB, each being 16-bit long. A FLASH pointer has bits 15 and 14 set, an EEPROM pointer has bit 15 set and bit 14 clear, and a RAM pointer has bits 15 and 14 clear. Feel free to use if you like. Best regards, Isaac Em 28/3/2011 13:24, Olin Lathrop escreveu: > PICdude wrote: >> Anyone have thoughts on how to work with strings in PIC assembly? >> Specifically, I want a cleaner (simpler code) way to send various >> strings to an LCD, rather than one char at a time. >> >> I thought of doing something like a lookup table (with DT "String >> text..." etc) but I expect there's a more elegant way, though not >> finding much else so far on the net. > What is so bad about the DT method? On a PIC 18 you'd use DB, b= ut > the concept is the same. Don't forget to put the DB statements in a > CODE_PACK section though. You won't get what you expect in a regular COD= E > section. > > The real question is what data structure to use. If you know you'll neve= r > send a NULL (or some other byte value), you can use that to indicate end = of > string. To be more general, you put the length in the first byte. > Sometimes the length is passed separately to facilitate re-using string > snippets. Either way, this can all be wrapped in a macro that hides the > data structure details. > > Then you need a subroutine that is passed a pointer to the string in prog= ram > memory that sends it. You can even wrap the subroutine call in a macro t= o > make it look a little cleaner in the code. For example, here are some fi= xed > strings from a PIC 18 project: > > str_enone db "disable", cr_k, 0 ;parameter to disable encryption > str_ew64 db "wep64", cr_k, 0 ;parameter for WEP64 encryption > str_ew128 db "wep128", cr_k, 0 ;parameter for WEP128 encryption > > I created the KSTRING macro to cause a string of this type to be emitted.= A > example of sending a string is: > > kstring str_ew128 ;select WEP128 encryption type > > If you wanted to get really fancy, you could make a macro to write a fixe= d > string, with the string on that line. Something like: > > sendstr "Enter self-destruct abort code: " > > I think you'd need my preprocessor > (http://www.embedinc.com/pic/prepic.txt.htm) to implement that macro, as = it > has to save some state for another macro or subroutine to write in a > CODE_PACK section later. > > > ******************************************************************** > Embed Inc, Littleton Massachusetts, http://www.embedinc.com/products > (978) 742-9014. Gold level PIC consultants since 2000. --_004_4D90C9802010804yahoocombr_ Content-Type: text/plain; name="STRING.ASM" Content-Description: STRING.ASM Content-Disposition: attachment; filename="STRING.ASM"; size=4870; creation-date="Mon, 28 Mar 2011 10:51:46 GMT"; modification-date="Mon, 28 Mar 2011 10:51:46 GMT" Content-Transfer-Encoding: base64 Oz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0NCgkJbGlzdAkJcj1kZWNpbWFsDQoJCWVycm9ybGV2ZWwJ LTIwNSwgLTIwNiwgLTMwMg0KOz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCiNpbmNsdWRlICJQMTZG ODc2QS5JTkMiDQojaW5jbHVkZSAiTUFDUk9TLklOQyINCiNpbmNsdWRlICJMQ0QuSU5DIg0KOz09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0NCmV4dGVybgkJQXV4MQ0KZXh0ZXJuCQlBdXgyDQpleHRlcm4J CUF1eDMNCmV4dGVybgkJQXV4NA0KZXh0ZXJuCQlBdXg1DQo7PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQ0KZ2xvYmFsCQlQdHJBDQpnbG9iYWwJCVB0ckINCmdsb2JhbAkJR2V0Qnl0ZQ0KZ2xvYmFsCQlQ dXRCeXRlDQpnbG9iYWwJCUluY1B0ckENCmdsb2JhbAkJSW5jUHRyQg0KZ2xvYmFsCQlfX1B1dHMN Cmdsb2JhbAkJX19NZW1DcHkNCmdsb2JhbAkJX19TdHJOQ3B5DQo7PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQ0KCQl1ZGF0YV9zaHINCg0KUHRyQQkJcmVzCTINClB0ckIJCXJlcwkyDQoNCjs9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09DQoJCWNvZGUNCg0KR2V0Qnl0ZToJbW92ZglTVEFUVVMsdw0KCQltb3Z3 ZglBdXgzDQoJCWJ0ZnNjCVB0ckErMSw3DQoJCWdvdG8JR2V0Qnl0ZTAxDQoJCTstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCkdl dEJ5dGVSQU06CW1vdmYJRlNSLHcNCgkJbW92d2YJQXV4NA0KDQoJCWJjZglTVEFUVVMsSVJQDQoJ CWJ0ZnNjCVB0ckErMSwwDQoJCWJzZglTVEFUVVMsSVJQDQoJCW1vdmYJUHRyQSswLHcNCgkJbW92 d2YJRlNSDQoJCW1vdmYJSU5ERix3DQoJCW1vdndmCUF1eDINCg0KCQltb3ZmCUF1eDQsdw0KCQlt b3Z3ZglGU1INCg0KCQltb3ZmCUF1eDMsdw0KCQltb3Z3ZglTVEFUVVMNCgkJc3dhcGYJQXV4Mixm DQoJCXN3YXBmCUF1eDIsdw0KCQlyZXR1cm4NCgkJOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KR2V0Qnl0ZTAxOglidGZzcwlQ dHJBKzEsNg0KCQlnb3RvCUdldEJ5dGVFRVBST00NCgkJOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KR2V0Qnl0ZVJPTToJbW92 ZglQdHJBKzEsdw0KCQk7YW5kbHcJMHgxZgk7TmFvIOkgbmVjZXNzYXJpbw0KCQltb3Z3ZglQQ0xB VEgNCgkJbW92ZglQdHJBKzAsdw0KCQltb3Z3ZglBdXgyDQoJCQ0KCQltb3ZmCUF1eDMsdw0KCQlt b3Z3ZglTVEFUVVMNCgkJc3dhcGYJQXV4MixmDQoJCXN3YXBmCUF1eDIsdw0KCQltb3Z3ZglQQ0wN CgkJOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQ0KR2V0Qnl0ZUVFUFJPTToJDQoJCWJhbmtzZWwJRUVDT04xDQpHZXRCeXRlRUVQ Uk9NMDE6YnRmc2MJRUVDT04xLFdSDQoJCWdvdG8JR2V0Qnl0ZUVFUFJPTTAxDQoJCW1vdmYJUHRy QSswLHcNCgkJYmFua3NlbAlFRUFEUg0KCQltb3Z3ZglFRUFEUg0KCQliYW5rc2VsCUVFQ09OMQ0K CQliY2YJRUVDT04xLEVFUEdEDQoJCWJzZglFRUNPTjEsUkQNCgkJYmFua3NlbAlFRURBVEENCgkJ bW92ZglFRURBVEEsdw0KCQltb3Z3ZglBdXgyDQoNCgkJbW92ZglBdXgzLHcNCgkJbW92d2YJU1RB VFVTDQoJCXN3YXBmCUF1eDIsZg0KCQlzd2FwZglBdXgyLHcNCgkJcmV0dXJuDQo7PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQ0KOz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NClB1dEJ5dGU6CW1vdndmCUF1 eDINCgkJbW92ZglTVEFUVVMsdw0KCQltb3Z3ZglBdXgzDQoJCWJ0ZnNjCVB0ckIrMSw3DQoJCWdv dG8JUHV0Qnl0ZTAxDQoJCTstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NClB1dEJ5dGVSQU06CW1vdmYJRlNSLHcNCgkJbW92d2YJ QXV4NA0KCQkNCgkJYmNmCVNUQVRVUyxJUlANCgkJYnRmc2MJUHRyQisxLDANCgkJYnNmCVNUQVRV UyxJUlANCgkJbW92ZglQdHJCKzAsdw0KCQltb3Z3ZglGU1INCgkJbW92ZglBdXgyLHcNCgkJbW92 d2YJSU5ERg0KDQoJCW1vdmYJQXV4NCx3DQoJCW1vdndmCUZTUg0KCQkNCgkJbW92ZglBdXgzLHcN CgkJbW92d2YJU1RBVFVTDQoJCXN3YXBmCUF1eDIsZg0KCQlzd2FwZglBdXgyLHcNCgkJcmV0dXJu DQoJCTstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0NClB1dEJ5dGUwMToJYnRmc2MJUHRyQisxLDYNCgkJcmV0dXJuDQoJCTstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0NClB1dEJ5dGVFRVBST006DQoJCWJhbmtzZWwJRUVDT04xDQpQdXRCeXRlRUVQUk9NMDE6YnRm c2MJRUVDT04xLFdSDQoJCWdvdG8JUHV0Qnl0ZUVFUFJPTTAxDQoJCWJhbmtzZWwJRUVBRFINCgkJ bW92ZglQdHJCKzAsdw0KCQltb3Z3ZglFRUFEUg0KCQltb3ZmCUF1eDIsdw0KCQltb3Z3ZglFRURB VEENCgkJYmFua3NlbAlFRUNPTjENCgkJYmNmCUVFQ09OMSxFRVBHRA0KCQliY2YJU1RBVFVTLEMN CgkJYnRmc2MJSU5UQ09OLEdJRQ0KCQlic2YJU1RBVFVTLEMNCgkJYmNmCUlOVENPTixHSUUNCgkJ YnNmCUVFQ09OMSxXUkVODQoJCW1vdmx3CTB4NTUNCgkJbW92d2YJRUVDT04yDQoJCW1vdmx3CTB4 YWENCgkJbW92d2YJRUVDT04yDQoJCWJzZglFRUNPTjEsV1INCgkJYmNmCUVFQ09OMSxXUkVODQoJ CWJ0ZnNjCVNUQVRVUyxDDQoJCWJzZglJTlRDT04sR0lFDQoNCgkJbW92ZglBdXgzLHcNCgkJbW92 d2YJU1RBVFVTDQoJCXN3YXBmCUF1eDIsZg0KCQlzd2FwZglBdXgyLHcNCgkJcmV0dXJuDQo7PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQ0KSW5jUHRyQToJaW5jZnN6CVB0ckErMCxmDQoJCXJldHVybg0K CQliY2YJUHRyQSsxLDUNCgkJaW5jZnN6CVB0ckErMSxmDQoJCXJldHVybg0KCQlyZXR1cm4NCjs9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09DQpJbmNQdHJCOglpbmNmc3oJUHRyQiswLGYNCgkJcmV0dXJu DQoJCWJjZglQdHJCKzEsNQ0KCQlpbmNmc3oJUHRyQisxLGYNCgkJcmV0dXJuDQoJCXJldHVybg0K Oz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0NCl9fUHV0czoJCWNhbGwJR2V0Qnl0ZQ0KCQl4b3Jsdwkw DQoJCWJ0ZnNjCVNUQVRVUyxaDQoJCXJldHVybg0KCQlmY2FsbAlQdXRjaA0KCQljYWxsCUluY1B0 ckENCgkJZ290bwlfX1B1dHMNCjs9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpfX01lbUNweToJbW92 ZglBdXgxLGYNCgkJYnRmc2MJU1RBVFVTLFoNCgkJcmV0dXJuDQpfX01lbUNweTAxOgljYWxsCUdl dEJ5dGUNCgkJcGFnZXNlbAlQdXRCeXRlDQoJCWNhbGwJUHV0Qnl0ZQ0KCQk7OztwYWdlc2VsCUlu Y1B0ckENCgkJY2FsbAlJbmNQdHJBDQoJCWNhbGwJSW5jUHRyQg0KCQlkZWNmc3oJQXV4MSxmDQoJ CWdvdG8JX19NZW1DcHkwMQ0KCQlyZXR1cm4NCjs9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpfX1N0 ck5DcHk6CW1vdmYJQXV4MSxmDQoJCWJ0ZnNjCVNUQVRVUyxaDQoJCXJldGx3CTANCgkJbW92ZglB dXgxLGYNCgkJbW92d2YJQXV4NQ0KCQlkZWNmc3oJQXV4MSxmDQoJCWdvdG8JX19TdHJOQ3B5MDEN CgkJZ290bwlfX1N0ck5DcHkwMg0KX19TdHJOQ3B5MDE6CWNhbGwJR2V0Qnl0ZQ0KCQlwYWdlc2Vs CV9fU3RyTkNweTAyDQoJCXhvcmx3CTANCgkJYnRmc2MJU1RBVFVTLFoNCgkJZ290bwlfX1N0ck5D cHkwMg0KCQljYWxsCVB1dEJ5dGUNCgkJOzs7cGFnZXNlbAlJbmNQdHJBDQoJCWNhbGwJSW5jUHRy QQ0KCQljYWxsCUluY1B0ckINCgkJZGVjZnN6CUF1eDEsZg0KCQlnb3RvCV9fU3RyTkNweTAxDQpf X1N0ck5DcHkwMjoJY2xydw0KCQljYWxsCVB1dEJ5dGUNCgkJbW92ZglBdXgxLHcNCgkJc3Vid2YJ QXV4NSx3DQoJCXJldHVybg0KOz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCgkJZW5kDQo7PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQ0K --_004_4D90C9802010804yahoocombr_ Content-Type: text/plain; name="STRING.INC" Content-Description: STRING.INC Content-Disposition: attachment; filename="STRING.INC"; size=4934; creation-date="Mon, 28 Mar 2011 10:51:46 GMT"; modification-date="Mon, 28 Mar 2011 10:51:46 GMT" Content-Transfer-Encoding: base64 Oz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0NCmV4dGVybgkJUHRyQQ0KZXh0ZXJuCQlQdHJCDQpleHRl cm4JCUdldEJ5dGUNCmV4dGVybgkJUHV0Qnl0ZQ0KZXh0ZXJuCQlJbmNQdHJBDQpleHRlcm4JCUlu Y1B0ckINCmV4dGVybgkJX19QdXRzDQpleHRlcm4JCV9fTWVtQ3B5DQpleHRlcm4JCV9fU3RyTkNw eQ0KOz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0NCiNkZWZpbmUJTWFrZVJBTVB0cihhKQkJIChhICYg MHgwMWZmKQ0KI2RlZmluZQlNYWtlUk9NUHRyKGEpCQkoKGEgJiAweDFmZmYpIHwgMHhjMDAwKQ0K I2RlZmluZQlNYWtlRUVQUk9NUHRyKGEpCSgoYSAmIDB4MDBmZikgfCAweDgwMDApDQo7PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQ0KU2V0UHRyCQltYWNybwlwLG1hcyxzDQogICA7LS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQ0KICAgSUYgbWFzID09ICJDIg0KICAgICAgCQltb3Zsdwlsb3cgKHMpDQogICAgICAJ CW1vdndmCXArMA0KICAgICAgCQltb3ZsdwloaWdoIChzKQ0KICAgICAgCQlpb3JsdwkweGMwDQog ICAgICAJCW1vdndmCXArMQ0KICAgRUxTRQ0KICAgICAgSUYgbWFzID09ICJEIg0KCQltb3Zsdwls b3cgKHMpDQoJCW1vdndmCXArMA0KCQltb3ZsdwloaWdoIChzKQ0KCQlhbmRsdwkweDAxDQoJCW1v dndmCXArMQ0KICAgICAgRUxTRQ0KICAgICAgICAgSUYgbWFzID09ICJFIg0KCQltb3Zsdwlsb3cg KHMpDQoJCW1vdndmCXArMA0KCQltb3ZsdwkweDgwDQoJCW1vdndmCXArMQ0KICAgICAgICAgRUxT RQ0KICAgICAgICAgICAgSUYgbWFzID09ICJWIg0KCQliYW5rc2VsCXMNCgkJbW92ZglzKzAsdw0K CQltb3Z3ZglwKzANCgkJbW92ZglzKzEsdw0KCQltb3Z3ZglwKzENCiAgICAgICAgICAgIEVMU0UN CiAgICAgICAgICAgICAgIEVSUk9SICJNb2RpZmljYWRvciBkZSBhY2Vzc28gaW524WxpZG8hIg0K ICAgICAgICAgICAgICAgRVhJVE0NCiAgICAgICAgICAgIEVORElGDQogICAgICAgICBFTkRJRg0K ICAgICAgRU5ESUYNCiAgIEVORElGDQogICA7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KCQllbmRtDQo7 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQ0KUHV0c1MJCW1hY3JvCXMNCgkJbG9jYWwJU3RyaW5nLFNh aWRhDQogICA7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KCQlTZXRQdHIJUHRyQSwiQyIsU3RyaW5nDQoJ CWZjYWxsCV9fUHV0cw0KCQlnb3RvCVNhaWRhDQogICA7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KU3Ry aW5nOgkJZHQJcywwDQpTYWlkYToNCiAgIDstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoJCWVuZG0NCjs9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09DQpQdXRzCQltYWNybwltYXMscw0KICAgOy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0NCgkJU2V0UHRyCVB0ckEsbWFzLHMNCgkJZmNhbGwJX19QdXRzDQogICA7LS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQ0KCQllbmRtDQo7PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KTWVtQ3B5UwkJ bWFjcm8JcyxtYWQsZA0KCQlsb2NhbAlTdHJpbmcsU2FpZGENCiAgIDstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tDQoJCVNldFB0cglQdHJBLCJDIixTdHJpbmcNCiAgIDstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQog ICBJRiBtYWQgPT0gIkMiDQogICAgICBFUlJPUiAiUHJlc2VudGVtZW50ZSBu428g6SBwb3Nz7XZl bCBncmF2YXIgZW0gQ09ERSAhIg0KICAgICAgRVhJVE0NCiAgIEVMU0UNCgkJU2V0UHRyCVB0ckIs bWFkLGQNCiAgIEVORElGDQogICA7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KCQltb3ZsdwlTYWlkYS1T dHJpbmcNCgkJbW92d2YJQXV4MQ0KICAgOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCgkJZmNhbGwJX19N ZW1DcHkNCgkJZ290bwlTYWlkYQ0KICAgOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NClN0cmluZzoJCWR0 CXMNClNhaWRhOg0KICAgOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCgkJZW5kbQ0KOz09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0NCk1lbUNweQkJbWFjcm8JbWFzLHMsbWFkLGQsbWFuLG4NCiAgIDstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tDQoJCVNldFB0cglQdHJBLG1hcyxzDQogICA7LS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQ0KICAgSUYgbWFkID09ICJDIg0KICAgICAgRVJST1IgIlByZXNlbnRlbWVudGUgbuNvIOkgcG9z c+12ZWwgZ3JhdmFyIGVtIENPREUgISINCiAgICAgIEVYSVRNDQogICBFTFNFDQoJCVNldFB0cglQ dHJCLG1hZCxkDQogICBFTkRJRg0KICAgOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiAgIElGIG1hbiA9 PSAiSyINCgkJbW92bHcJbg0KCQltb3Z3ZglBdXgxDQogICBFTFNFDQogICAgICBJRiBtYW4gPT0g IlYiDQoJCWJhbmtzZWwJbg0KCQltb3ZmCW4sdw0KCQltb3Z3ZglBdXgxDQogICAgICBFTFNFDQog ICAgICAgICBFUlJPUiAiTW9kaWZpY2Fkb3IgZGUgYWNlc3NvIGluduFsaWRvISINCiAgICAgICAg IEVYSVRNDQogICAgICBFTkRJRg0KICAgRU5ESUYNCiAgIDstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoJ CWZjYWxsCV9fTWVtQ3B5DQogICA7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KCQllbmRtDQo7PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQ0KU3RyTkNweQkJbWFjcm8JbWFzLHMsbWFkLGQsbWFuLG4NCiAgIDst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tDQoJCVNldFB0cglQdHJBLG1hcyxzDQogICA7LS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQ0KICAgSUYgbWFkID09ICJDIg0KICAgICAgRVJST1IgIlByZXNlbnRlbWVudGUgbuNv IOkgcG9zc+12ZWwgZ3JhdmFyIGVtIENPREUgISINCiAgICAgIEVYSVRNDQogICBFTFNFDQoJCVNl dFB0cglQdHJCLG1hZCxkDQogICBFTkRJRg0KICAgOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiAgIElG IG1hbiA9PSAiSyINCgkJbW92bHcJbg0KCQltb3Z3ZglBdXgxDQogICBFTFNFDQogICAgICBJRiBt YW4gPT0gIlYiDQoJCWJhbmtzZWwJbg0KCQltb3ZmCW4sdw0KCQltb3Z3ZglBdXgxDQogICAgICBF TFNFDQogICAgICAgICBFUlJPUiAiTW9kaWZpY2Fkb3IgZGUgYWNlc3NvIGluduFsaWRvISINCiAg ICAgICAgIEVYSVRNDQogICAgICBFTkRJRg0KICAgRU5ESUYNCiAgIDstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tDQoJCWZjYWxsCV9fU3RyTkNweQ0KICAgOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCgkJZW5kbQ0K Oz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0NCg== --_004_4D90C9802010804yahoocombr_ Content-Type: text/plain; name="ATT00001.txt" Content-Description: ATT00001.txt Content-Disposition: attachment; filename="ATT00001.txt"; size=208; creation-date="Mon, 28 Mar 2011 10:51:46 GMT"; modification-date="Mon, 28 Mar 2011 10:51:46 GMT" Content-Transfer-Encoding: base64 LS0gDQpodHRwOi8vd3d3LnBpY2xpc3QuY29tIFBJQy9TWCBGQVEgJiBsaXN0IGFyY2hpdmUNClZp ZXcvY2hhbmdlIHlvdXIgbWVtYmVyc2hpcCBvcHRpb25zIGF0DQpodHRwOi8vbWFpbG1hbi5taXQu ZWR1L21haWxtYW4vbGlzdGluZm8vcGljbGlzdA0K --_004_4D90C9802010804yahoocombr_-- .