From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 21389 invoked by alias); 17 Feb 2011 15:35:46 -0000 Received: (qmail 21017 invoked by uid 22791); 17 Feb 2011 15:35:41 -0000 X-SWARE-Spam-Status: No, hits=-1.4 required=5.0 tests=AWL,BAYES_40,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,TW_BJ X-Spam-Check-By: sourceware.org Received: from mail-wy0-f169.google.com (HELO mail-wy0-f169.google.com) (74.125.82.169) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Thu, 17 Feb 2011 15:35:36 +0000 Received: by wyj26 with SMTP id 26so2638116wyj.0 for ; Thu, 17 Feb 2011 07:35:33 -0800 (PST) Received: by 10.216.4.82 with SMTP id 60mr466425wei.89.1297956933242; Thu, 17 Feb 2011 07:35:33 -0800 (PST) MIME-Version: 1.0 Received: by 10.216.243.3 with HTTP; Thu, 17 Feb 2011 07:35:13 -0800 (PST) In-Reply-To: <4D5C104D.7050707@redhat.com> References: <4D5ABAB2.2000405@redhat.com> <4D5ACDF2.20904@redhat.com> <4D5C104D.7050707@redhat.com> From: Anitha Boyapati Date: Thu, 17 Feb 2011 15:35:00 -0000 Message-ID: Subject: Re: [avr] gas support for cfi info To: Richard Henderson , GCC Patches Cc: =?ISO-8859-1?Q?Petr_Hluz=EDn?= , binutils@sourceware.org, gdb@sourceware.org, chertykov@gmail.com, aesok@post.ru, eric.weddington@atmel.com Content-Type: multipart/mixed; boundary=0016364c757ef090d7049c7c25cd Mailing-List: contact binutils-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: binutils-owner@sourceware.org X-SW-Source: 2011-02/txt/msg00215.txt.bz2 --0016364c757ef090d7049c7c25cd Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-length: 2959 On 16 February 2011 23:28, Richard Henderson wrote: > On 02/15/2011 02:44 PM, Petr Hluz=EDn wrote: >> In avr-tdep.c [1] near avr_dwarf_reg_to_regnum(): >> /* Unfortunately dwarf2 register for SP is 32. =A0*/ > > Excellent. =A0We're all on the same page for this. > >> (I can't help you with the value for #define DWARF2_DEFAULT_RETURN_COLUM= N =A036) >> AFAIK there is no written ABI. Only the calling convention is >> documented (and only the easy cases), the rest is in gdb/gcc/binutils >> sources and people's heads. > > As I recall, GCC defaults to using FIRST_PSEUDO_REGISTER for this, > so as to not overlap any hard registers. =A0I'll continue to so the same. > >> =A0 /* Avr-6 call instructions save 3 bytes. =A0*/ >> =A0 switch (info.bfd_arch_info->mach) > > Thanks. =A0That value is readily available in the assembler as well. > > Anitha pointed out to me via gcc pr17994 that AVR uses post-decrement > for its pushes. =A0I had a brief read over the AVR insn manual, and it's > not crystal clear how multi-byte post-decrement pushes operate. > > I've made an assumption that it happens as-if each byte is pushed > separately. =A0I.e. > > =A0caller: =A0 =A0 =A0 =A0 =A0 callee: > =A0 =A0save rN > =A0 =A0save rM > =A0 =A0trash =A0 =A0<- SP =A0hi(ret) =A0<- CFA > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0lo(ret) > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0trash =A0 =A0<- SP > > This is the only way I can imagine that call insns interoperate with > byte push/pop insns. > The stack layout is correct. For call/rcall instructions, PC-low is pushed first followed by a PC-high. (I just verified by running/debugging a small app on the device) > All of which means that the return address is at a different offset > from the CFA than I originally thought. =A0This ought to be fixed in > the following. Can you please explain the logic behind the following lines in gcc patch: - offset =3D -cfa_store.offset; + if (GET_CODE (XEXP (dest, 0)) =3D=3D POST_DEC) + offset +=3D -cfa_store.offset; + else + offset =3D -cfa_store.offset; > > Can someone please test these two patches and see if they actually > agree with the hardware? I have tried only compiler patch. Please refer to the attached output for a small testcase. (avr-objdump -WfF). It appeared correct to me. However I have one simple question with regarding the output: The CFI instructions for registers have changed only after the prologue. (For convenience I have attached disassembly too). As far as I understand, DWARF2 spec emits CFI instructions immediately. (Appendix 5 of DWARF2 specification) The other scenario is - how about functions with signals/interrupts? The compiler will give an ICE compiling a function as below: void my_interrupt_handler() __attribute__ (("interrupt")); Likewise, for signal attribute too. I am going to apply assembler patch and test it. Will get back on it shortly. Anitha > > r~ > --0016364c757ef090d7049c7c25cd Content-Type: text/plain; charset=US-ASCII; name="call-saved.txt" Content-Disposition: attachment; filename="call-saved.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gk9sz01h2 Content-length: 7707 CmNhbGwtc2F2ZWQ6ICAgICBmaWxlIGZvcm1hdCBlbGYzMi1hdnIKCkNvbnRl bnRzIG9mIHRoZSAuZGVidWdfZnJhbWUgc2VjdGlvbjoKCjAwMDAwMDAwIDAw MDAwMDEwIGZmZmZmZmZmIENJRQogIFZlcnNpb246ICAgICAgICAgICAgICAg MQogIEF1Z21lbnRhdGlvbjogICAgICAgICAgIiIKICBDb2RlIGFsaWdubWVu dCBmYWN0b3I6IDEKICBEYXRhIGFsaWdubWVudCBmYWN0b3I6IC0xCiAgUmV0 dXJuIGFkZHJlc3MgY29sdW1uOiAzNgoKICBEV19DRkFfZGVmX2NmYTogcjMy IG9mcyAyCiAgRFdfQ0ZBX29mZnNldDogcjM2IGF0IGNmYS0xCiAgRFdfQ0ZB X25vcAogIERXX0NGQV9ub3AKCjAwMDAwMDE0IDAwMDAwMDZjIDAwMDAwMDAw IEZERSBjaWU9MDAwMDAwMDAgcGM9MDAwMDAwMDAuLjAwMDAwMGNlCiAgRFdf Q0ZBX2FkdmFuY2VfbG9jOiAyIHRvIDAwMDAwMDAyCiAgRFdfQ0ZBX2RlZl9j ZmFfb2Zmc2V0OiAzCiAgRFdfQ0ZBX2FkdmFuY2VfbG9jOiAyIHRvIDAwMDAw MDA0CiAgRFdfQ0ZBX2RlZl9jZmFfb2Zmc2V0OiA0CiAgRFdfQ0ZBX2FkdmFu Y2VfbG9jOiAyIHRvIDAwMDAwMDA2CiAgRFdfQ0ZBX2RlZl9jZmFfb2Zmc2V0 OiA1CiAgRFdfQ0ZBX2FkdmFuY2VfbG9jOiAyIHRvIDAwMDAwMDA4CiAgRFdf Q0ZBX2RlZl9jZmFfb2Zmc2V0OiA2CiAgRFdfQ0ZBX2FkdmFuY2VfbG9jOiAy IHRvIDAwMDAwMDBhCiAgRFdfQ0ZBX2RlZl9jZmFfb2Zmc2V0OiA3CiAgRFdf Q0ZBX2FkdmFuY2VfbG9jOiAyIHRvIDAwMDAwMDBjCiAgRFdfQ0ZBX2RlZl9j ZmFfb2Zmc2V0OiA4CiAgRFdfQ0ZBX2FkdmFuY2VfbG9jOiAyIHRvIDAwMDAw MDBlCiAgRFdfQ0ZBX2RlZl9jZmFfb2Zmc2V0OiA5CiAgRFdfQ0ZBX2FkdmFu Y2VfbG9jOiAyIHRvIDAwMDAwMDEwCiAgRFdfQ0ZBX2RlZl9jZmFfb2Zmc2V0 OiAxMAogIERXX0NGQV9hZHZhbmNlX2xvYzogMiB0byAwMDAwMDAxMgogIERX X0NGQV9kZWZfY2ZhX29mZnNldDogMTEKICBEV19DRkFfYWR2YW5jZV9sb2M6 IDIgdG8gMDAwMDAwMTQKICBEV19DRkFfZGVmX2NmYV9vZmZzZXQ6IDEyCiAg RFdfQ0ZBX2FkdmFuY2VfbG9jOiAyIHRvIDAwMDAwMDE2CiAgRFdfQ0ZBX2Rl Zl9jZmFfb2Zmc2V0OiAxMwogIERXX0NGQV9hZHZhbmNlX2xvYzogMiB0byAw MDAwMDAxOAogIERXX0NGQV9kZWZfY2ZhX29mZnNldDogMTQKICBEV19DRkFf YWR2YW5jZV9sb2M6IDIgdG8gMDAwMDAwMWEKICBEV19DRkFfZGVmX2NmYV9v ZmZzZXQ6IDE1CiAgRFdfQ0ZBX2FkdmFuY2VfbG9jOiAyIHRvIDAwMDAwMDFj CiAgRFdfQ0ZBX2RlZl9jZmFfb2Zmc2V0OiAxNgogIERXX0NGQV9hZHZhbmNl X2xvYzogMiB0byAwMDAwMDAxZQogIERXX0NGQV9kZWZfY2ZhX29mZnNldDog MTcKICBEV19DRkFfYWR2YW5jZV9sb2M6IDIgdG8gMDAwMDAwMjAKICBEV19D RkFfZGVmX2NmYV9vZmZzZXQ6IDE4CiAgRFdfQ0ZBX2FkdmFuY2VfbG9jOiA0 IHRvIDAwMDAwMDI0CiAgRFdfQ0ZBX2RlZl9jZmFfb2Zmc2V0OiAyMAogIERX X0NGQV9vZmZzZXQ6IHIyOCBhdCBjZmEtMTgKICBEV19DRkFfb2Zmc2V0OiBy MTcgYXQgY2ZhLTE3CiAgRFdfQ0ZBX29mZnNldDogcjE2IGF0IGNmYS0xNgog IERXX0NGQV9vZmZzZXQ6IHIxNSBhdCBjZmEtMTUKICBEV19DRkFfb2Zmc2V0 OiByMTQgYXQgY2ZhLTE0CiAgRFdfQ0ZBX29mZnNldDogcjEzIGF0IGNmYS0x MwogIERXX0NGQV9vZmZzZXQ6IHIxMiBhdCBjZmEtMTIKICBEV19DRkFfb2Zm c2V0OiByMTEgYXQgY2ZhLTExCiAgRFdfQ0ZBX29mZnNldDogcjEwIGF0IGNm YS0xMAogIERXX0NGQV9vZmZzZXQ6IHI5IGF0IGNmYS05CiAgRFdfQ0ZBX29m ZnNldDogcjggYXQgY2ZhLTgKICBEV19DRkFfb2Zmc2V0OiByNyBhdCBjZmEt NwogIERXX0NGQV9vZmZzZXQ6IHI2IGF0IGNmYS02CiAgRFdfQ0ZBX29mZnNl dDogcjUgYXQgY2ZhLTUKICBEV19DRkFfb2Zmc2V0OiByNCBhdCBjZmEtNAog IERXX0NGQV9vZmZzZXQ6IHIzIGF0IGNmYS0zCiAgRFdfQ0ZBX29mZnNldDog cjIgYXQgY2ZhLTIKICBEV19DRkFfYWR2YW5jZV9sb2M6IDQgdG8gMDAwMDAw MjgKICBEV19DRkFfZGVmX2NmYV9yZWdpc3RlcjogcjI4CiAgRFdfQ0ZBX2Fk dmFuY2VfbG9jOiAyIHRvIDAwMDAwMDJhCiAgRFdfQ0ZBX2RlZl9jZmFfb2Zm c2V0OiAzNgogIERXX0NGQV9hZHZhbmNlX2xvYzogMTAgdG8gMDAwMDAwMzQK ICBEV19DRkFfZGVmX2NmYV9yZWdpc3RlcjogcjMyCiAgRFdfQ0ZBX25vcAog IERXX0NGQV9ub3AKCjAwMDAwMDg0IDAwMDAwMDE0IDAwMDAwMDAwIEZERSBj aWU9MDAwMDAwMDAgcGM9MDAwMDAwY2UuLjAwMDAwMGRlCiAgRFdfQ0ZBX2Fk dmFuY2VfbG9jOiA0IHRvIDAwMDAwMGQyCiAgRFdfQ0ZBX2RlZl9jZmFfb2Zm c2V0OiA0CiAgRFdfQ0ZBX29mZnNldDogcjI4IGF0IGNmYS0yCiAgRFdfQ0ZB X2FkdmFuY2VfbG9jOiA0IHRvIDAwMDAwMGQ2CiAgRFdfQ0ZBX2RlZl9jZmFf cmVnaXN0ZXI6IHIyOAoKCmNhbGwtc2F2ZWQ6ICAgICBmaWxlIGZvcm1hdCBl bGYzMi1hdnIKCkNvbnRlbnRzIG9mIHRoZSAuZGVidWdfZnJhbWUgc2VjdGlv bjoKCjAwMDAwMDAwIDAwMDAwMDEwIGZmZmZmZmZmIENJRSAiIiBjZj0xIGRm PS0xIHJhPTM2CiAgIExPQyAgIENGQSAgICAgIHJhICAgICAgCjAwMDAwMDAw IHIzMisyICAgIGMtMSAgIAoKMDAwMDAwMTQgMDAwMDAwNmMgMDAwMDAwMDAg RkRFIGNpZT0wMDAwMDAwMCBwYz0wMDAwMDAwMC4uMDAwMDAwY2UKICAgTE9D ICAgQ0ZBICAgICAgcjIgICAgcjMgICAgcjQgICAgcjUgICAgcjYgICAgcjcg ICAgcjggICAgcjkgICAgcjEwICAgcjExICAgcjEyICAgcjEzICAgcjE0ICAg cjE1ICAgcjE2ICAgcjE3ICAgcjI4ICAgcmEgICAgICAKMDAwMDAwMDAgcjMy KzIgICAgdSAgICAgdSAgICAgdSAgICAgdSAgICAgdSAgICAgdSAgICAgdSAg ICAgdSAgICAgdSAgICAgdSAgICAgdSAgICAgdSAgICAgdSAgICAgdSAgICAg dSAgICAgdSAgICAgdSAgICAgYy0xICAgCjAwMDAwMDAyIHIzMiszICAgIHUg ICAgIHUgICAgIHUgICAgIHUgICAgIHUgICAgIHUgICAgIHUgICAgIHUgICAg IHUgICAgIHUgICAgIHUgICAgIHUgICAgIHUgICAgIHUgICAgIHUgICAgIHUg ICAgIHUgICAgIGMtMSAgIAowMDAwMDAwNCByMzIrNCAgICB1ICAgICB1ICAg ICB1ICAgICB1ICAgICB1ICAgICB1ICAgICB1ICAgICB1ICAgICB1ICAgICB1 ICAgICB1ICAgICB1ICAgICB1ICAgICB1ICAgICB1ICAgICB1ICAgICB1ICAg ICBjLTEgICAKMDAwMDAwMDYgcjMyKzUgICAgdSAgICAgdSAgICAgdSAgICAg dSAgICAgdSAgICAgdSAgICAgdSAgICAgdSAgICAgdSAgICAgdSAgICAgdSAg ICAgdSAgICAgdSAgICAgdSAgICAgdSAgICAgdSAgICAgdSAgICAgYy0xICAg CjAwMDAwMDA4IHIzMis2ICAgIHUgICAgIHUgICAgIHUgICAgIHUgICAgIHUg ICAgIHUgICAgIHUgICAgIHUgICAgIHUgICAgIHUgICAgIHUgICAgIHUgICAg IHUgICAgIHUgICAgIHUgICAgIHUgICAgIHUgICAgIGMtMSAgIAowMDAwMDAw YSByMzIrNyAgICB1ICAgICB1ICAgICB1ICAgICB1ICAgICB1ICAgICB1ICAg ICB1ICAgICB1ICAgICB1ICAgICB1ICAgICB1ICAgICB1ICAgICB1ICAgICB1 ICAgICB1ICAgICB1ICAgICB1ICAgICBjLTEgICAKMDAwMDAwMGMgcjMyKzgg ICAgdSAgICAgdSAgICAgdSAgICAgdSAgICAgdSAgICAgdSAgICAgdSAgICAg dSAgICAgdSAgICAgdSAgICAgdSAgICAgdSAgICAgdSAgICAgdSAgICAgdSAg ICAgdSAgICAgdSAgICAgYy0xICAgCjAwMDAwMDBlIHIzMis5ICAgIHUgICAg IHUgICAgIHUgICAgIHUgICAgIHUgICAgIHUgICAgIHUgICAgIHUgICAgIHUg ICAgIHUgICAgIHUgICAgIHUgICAgIHUgICAgIHUgICAgIHUgICAgIHUgICAg IHUgICAgIGMtMSAgIAowMDAwMDAxMCByMzIrMTAgICB1ICAgICB1ICAgICB1 ICAgICB1ICAgICB1ICAgICB1ICAgICB1ICAgICB1ICAgICB1ICAgICB1ICAg ICB1ICAgICB1ICAgICB1ICAgICB1ICAgICB1ICAgICB1ICAgICB1ICAgICBj LTEgICAKMDAwMDAwMTIgcjMyKzExICAgdSAgICAgdSAgICAgdSAgICAgdSAg ICAgdSAgICAgdSAgICAgdSAgICAgdSAgICAgdSAgICAgdSAgICAgdSAgICAg dSAgICAgdSAgICAgdSAgICAgdSAgICAgdSAgICAgdSAgICAgYy0xICAgCjAw MDAwMDE0IHIzMisxMiAgIHUgICAgIHUgICAgIHUgICAgIHUgICAgIHUgICAg IHUgICAgIHUgICAgIHUgICAgIHUgICAgIHUgICAgIHUgICAgIHUgICAgIHUg ICAgIHUgICAgIHUgICAgIHUgICAgIHUgICAgIGMtMSAgIAowMDAwMDAxNiBy MzIrMTMgICB1ICAgICB1ICAgICB1ICAgICB1ICAgICB1ICAgICB1ICAgICB1 ICAgICB1ICAgICB1ICAgICB1ICAgICB1ICAgICB1ICAgICB1ICAgICB1ICAg ICB1ICAgICB1ICAgICB1ICAgICBjLTEgICAKMDAwMDAwMTggcjMyKzE0ICAg dSAgICAgdSAgICAgdSAgICAgdSAgICAgdSAgICAgdSAgICAgdSAgICAgdSAg ICAgdSAgICAgdSAgICAgdSAgICAgdSAgICAgdSAgICAgdSAgICAgdSAgICAg dSAgICAgdSAgICAgYy0xICAgCjAwMDAwMDFhIHIzMisxNSAgIHUgICAgIHUg ICAgIHUgICAgIHUgICAgIHUgICAgIHUgICAgIHUgICAgIHUgICAgIHUgICAg IHUgICAgIHUgICAgIHUgICAgIHUgICAgIHUgICAgIHUgICAgIHUgICAgIHUg ICAgIGMtMSAgIAowMDAwMDAxYyByMzIrMTYgICB1ICAgICB1ICAgICB1ICAg ICB1ICAgICB1ICAgICB1ICAgICB1ICAgICB1ICAgICB1ICAgICB1ICAgICB1 ICAgICB1ICAgICB1ICAgICB1ICAgICB1ICAgICB1ICAgICB1ICAgICBjLTEg ICAKMDAwMDAwMWUgcjMyKzE3ICAgdSAgICAgdSAgICAgdSAgICAgdSAgICAg dSAgICAgdSAgICAgdSAgICAgdSAgICAgdSAgICAgdSAgICAgdSAgICAgdSAg ICAgdSAgICAgdSAgICAgdSAgICAgdSAgICAgdSAgICAgYy0xICAgCjAwMDAw MDIwIHIzMisxOCAgIHUgICAgIHUgICAgIHUgICAgIHUgICAgIHUgICAgIHUg ICAgIHUgICAgIHUgICAgIHUgICAgIHUgICAgIHUgICAgIHUgICAgIHUgICAg IHUgICAgIHUgICAgIHUgICAgIHUgICAgIGMtMSAgIAowMDAwMDAyNCByMzIr MjAgICBjLTIgICBjLTMgICBjLTQgICBjLTUgICBjLTYgICBjLTcgICBjLTgg ICBjLTkgICBjLTEwICBjLTExICBjLTEyICBjLTEzICBjLTE0ICBjLTE1ICBj LTE2ICBjLTE3ICBjLTE4ICBjLTEgICAKMDAwMDAwMjggcjI4KzIwICAgYy0y ICAgYy0zICAgYy00ICAgYy01ICAgYy02ICAgYy03ICAgYy04ICAgYy05ICAg Yy0xMCAgYy0xMSAgYy0xMiAgYy0xMyAgYy0xNCAgYy0xNSAgYy0xNiAgYy0x NyAgYy0xOCAgYy0xICAgCjAwMDAwMDJhIHIyOCszNiAgIGMtMiAgIGMtMyAg IGMtNCAgIGMtNSAgIGMtNiAgIGMtNyAgIGMtOCAgIGMtOSAgIGMtMTAgIGMt MTEgIGMtMTIgIGMtMTMgIGMtMTQgIGMtMTUgIGMtMTYgIGMtMTcgIGMtMTgg IGMtMSAgIAowMDAwMDAzNCByMzIrMzYgICBjLTIgICBjLTMgICBjLTQgICBj LTUgICBjLTYgICBjLTcgICBjLTggICBjLTkgICBjLTEwICBjLTExICBjLTEy ICBjLTEzICBjLTE0ICBjLTE1ICBjLTE2ICBjLTE3ICBjLTE4ICBjLTEgICAK CjAwMDAwMDg0IDAwMDAwMDE0IDAwMDAwMDAwIEZERSBjaWU9MDAwMDAwMDAg cGM9MDAwMDAwY2UuLjAwMDAwMGRlCiAgIExPQyAgIENGQSAgICAgIHIyOCAg IHJhICAgICAgCjAwMDAwMGNlIHIzMisyICAgIHUgICAgIGMtMSAgIAowMDAw MDBkMiByMzIrNCAgICBjLTIgICBjLTEgICAKMDAwMDAwZDYgcjI4KzQgICAg Yy0yICAgYy0xICAgCgo= --0016364c757ef090d7049c7c25cd Content-Type: text/x-csrc; charset=US-ASCII; name="call-saved.c" Content-Disposition: attachment; filename="call-saved.c" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gk9t0fiu3 Content-length: 383 aW50IGZvbygpIHsKCglyZWdpc3RlciBhMSwgYjEsIGMxLCBkMSwgZTEsIGYx LCBnMSwgaDE7CglyZWdpc3RlciBhMiwgYjIsIGMyLCBkMiwgZTIsIGYyLCBn MiwgaDI7CgoJcmVnaXN0ZXIgcmVzdWx0MSA9IGExK2IxK2MxK2QxK2UxK2Yx K2cxK2gxOwoJcmVnaXN0ZXIgcmVzdWx0MiA9IGEyK2IyK2MyK2QyK2UyK2Yy K2cyK2gyOwoKCQoJcmVnaXN0ZXIgcmVzdWx0ID0gcmVzdWx0MSArIHJlc3Vs dDI7CgoJcmV0dXJuIHJlc3VsdDsKfQoKdm9pZCBtYWluKCkgewoJcmV0dXJu IGZvbygpOwoKfQo= --0016364c757ef090d7049c7c25cd Content-Type: text/plain; charset=US-ASCII; name="call-saved-disas.txt" Content-Disposition: attachment; filename="call-saved-disas.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gk9t2xwl4 Content-length: 4921 CmNhbGwtc2F2ZWQ6ICAgICBmaWxlIGZvcm1hdCBlbGYzMi1hdnIKCgpEaXNh c3NlbWJseSBvZiBzZWN0aW9uIC50ZXh0OgoKMDAwMDAwMDAgPGZvbz46CiAg IDA6CTJmIDkyICAgICAgIAlwdXNoCXIyCiAgIDI6CTNmIDkyICAgICAgIAlw dXNoCXIzCiAgIDQ6CTRmIDkyICAgICAgIAlwdXNoCXI0CiAgIDY6CTVmIDky ICAgICAgIAlwdXNoCXI1CiAgIDg6CTZmIDkyICAgICAgIAlwdXNoCXI2CiAg IGE6CTdmIDkyICAgICAgIAlwdXNoCXI3CiAgIGM6CThmIDkyICAgICAgIAlw dXNoCXI4CiAgIGU6CTlmIDkyICAgICAgIAlwdXNoCXI5CiAgMTA6CWFmIDky ICAgICAgIAlwdXNoCXIxMAogIDEyOgliZiA5MiAgICAgICAJcHVzaAlyMTEK ICAxNDoJY2YgOTIgICAgICAgCXB1c2gJcjEyCiAgMTY6CWRmIDkyICAgICAg IAlwdXNoCXIxMwogIDE4OgllZiA5MiAgICAgICAJcHVzaAlyMTQKICAxYToJ ZmYgOTIgICAgICAgCXB1c2gJcjE1CiAgMWM6CTBmIDkzICAgICAgIAlwdXNo CXIxNgogIDFlOgkxZiA5MyAgICAgICAJcHVzaAlyMTcKICAyMDoJZGYgOTMg ICAgICAgCXB1c2gJcjI5CiAgMjI6CWNmIDkzICAgICAgIAlwdXNoCXIyOAog IDI0OgljZCBiNyAgICAgICAJaW4JcjI4LCAweDNkCTsgNjEKICAyNjoJZGUg YjcgICAgICAgCWluCXIyOSwgMHgzZQk7IDYyCiAgMjg6CTYwIDk3ICAgICAg IAlzYml3CXIyOCwgMHgxMAk7IDE2CiAgMmE6CTBmIGI2ICAgICAgIAlpbgly MCwgMHgzZgk7IDYzCiAgMmM6CWY4IDk0ICAgICAgIAljbGkKICAyZToJZGUg YmYgICAgICAgCW91dAkweDNlLCByMjkJOyA2MgogIDMwOgkwZiBiZSAgICAg ICAJb3V0CTB4M2YsIHIwCTsgNjMKICAzMjoJY2QgYmYgICAgICAgCW91dAkw eDNkLCByMjgJOyA2MQogIDM0Ogk4ZSAyZCAgICAgICAJbW92CXIyNCwgcjE0 CiAgMzY6CTlmIDJkICAgICAgIAltb3YJcjI1LCByMTUKICAzODoJODAgMGYg ICAgICAgCWFkZAlyMjQsIHIxNgogIDNhOgk5MSAxZiAgICAgICAJYWRjCXIy NSwgcjE3CiAgM2M6CTI5IDgxICAgICAgIAlsZGQJcjE4LCBZKzEJOyAweDAx CiAgM2U6CTNhIDgxICAgICAgIAlsZGQJcjE5LCBZKzIJOyAweDAyCiAgNDA6 CTgyIDBmICAgICAgIAlhZGQJcjI0LCByMTgKICA0MjoJOTMgMWYgICAgICAg CWFkYwlyMjUsIHIxOQogIDQ0OgkyYiA4MSAgICAgICAJbGRkCXIxOCwgWSsz CTsgMHgwMwogIDQ2OgkzYyA4MSAgICAgICAJbGRkCXIxOSwgWSs0CTsgMHgw NAogIDQ4Ogk4MiAwZiAgICAgICAJYWRkCXIyNCwgcjE4CiAgNGE6CTkzIDFm ICAgICAgIAlhZGMJcjI1LCByMTkKICA0YzoJMmQgODEgICAgICAgCWxkZAly MTgsIFkrNQk7IDB4MDUKICA0ZToJM2UgODEgICAgICAgCWxkZAlyMTksIFkr Ngk7IDB4MDYKICA1MDoJODIgMGYgICAgICAgCWFkZAlyMjQsIHIxOAogIDUy Ogk5MyAxZiAgICAgICAJYWRjCXIyNSwgcjE5CiAgNTQ6CTJmIDgxICAgICAg IAlsZGQJcjE4LCBZKzcJOyAweDA3CiAgNTY6CTM4IDg1ICAgICAgIAlsZGQJ cjE5LCBZKzgJOyAweDA4CiAgNTg6CTgyIDBmICAgICAgIAlhZGQJcjI0LCBy MTgKICA1YToJOTMgMWYgICAgICAgCWFkYwlyMjUsIHIxOQogIDVjOgkyOSA4 NSAgICAgICAJbGRkCXIxOCwgWSs5CTsgMHgwOQogIDVlOgkzYSA4NSAgICAg ICAJbGRkCXIxOSwgWSsxMAk7IDB4MGEKICA2MDoJODIgMGYgICAgICAgCWFk ZAlyMjQsIHIxOAogIDYyOgk5MyAxZiAgICAgICAJYWRjCXIyNSwgcjE5CiAg NjQ6CWViIDg0ICAgICAgIAlsZGQJcjE0LCBZKzExCTsgMHgwYgogIDY2Oglm YyA4NCAgICAgICAJbGRkCXIxNSwgWSsxMgk7IDB4MGMKICA2ODoJZTggMGUg ICAgICAgCWFkZAlyMTQsIHIyNAogIDZhOglmOSAxZSAgICAgICAJYWRjCXIx NSwgcjI1CiAgNmM6CThkIDg1ICAgICAgIAlsZGQJcjI0LCBZKzEzCTsgMHgw ZAogIDZlOgk5ZSA4NSAgICAgICAJbGRkCXIyNSwgWSsxNAk7IDB4MGUKICA3 MDoJMmYgODUgICAgICAgCWxkZAlyMTgsIFkrMTUJOyAweDBmCiAgNzI6CTM4 IDg5ICAgICAgIAlsZGQJcjE5LCBZKzE2CTsgMHgxMAogIDc0Ogk4MiAwZiAg ICAgICAJYWRkCXIyNCwgcjE4CiAgNzY6CTkzIDFmICAgICAgIAlhZGMJcjI1 LCByMTkKICA3ODoJODIgMGQgICAgICAgCWFkZAlyMjQsIHIyCiAgN2E6CTkz IDFkICAgICAgIAlhZGMJcjI1LCByMwogIDdjOgk4NCAwZCAgICAgICAJYWRk CXIyNCwgcjQKICA3ZToJOTUgMWQgICAgICAgCWFkYwlyMjUsIHI1CiAgODA6 CTg2IDBkICAgICAgIAlhZGQJcjI0LCByNgogIDgyOgk5NyAxZCAgICAgICAJ YWRjCXIyNSwgcjcKICA4NDoJODggMGQgICAgICAgCWFkZAlyMjQsIHI4CiAg ODY6CTk5IDFkICAgICAgIAlhZGMJcjI1LCByOQogIDg4Ogk4YSAwZCAgICAg ICAJYWRkCXIyNCwgcjEwCiAgOGE6CTliIDFkICAgICAgIAlhZGMJcjI1LCBy MTEKICA4YzoJMDggMmYgICAgICAgCW1vdglyMTYsIHIyNAogIDhlOgkxOSAy ZiAgICAgICAJbW92CXIxNywgcjI1CiAgOTA6CTBjIDBkICAgICAgIAlhZGQJ cjE2LCByMTIKICA5MjoJMWQgMWQgICAgICAgCWFkYwlyMTcsIHIxMwogIDk0 OgkwZSAwZCAgICAgICAJYWRkCXIxNiwgcjE0CiAgOTY6CTFmIDFkICAgICAg IAlhZGMJcjE3LCByMTUKICA5ODoJODAgMmYgICAgICAgCW1vdglyMjQsIHIx NgogIDlhOgk5MSAyZiAgICAgICAJbW92CXIyNSwgcjE3CiAgOWM6CTYwIDk2 ICAgICAgIAlhZGl3CXIyOCwgMHgxMAk7IDE2CiAgOWU6CTBmIGI2ICAgICAg IAlpbglyMCwgMHgzZgk7IDYzCiAgYTA6CWY4IDk0ICAgICAgIAljbGkKICBh MjoJZGUgYmYgICAgICAgCW91dAkweDNlLCByMjkJOyA2MgogIGE0OgkwZiBi ZSAgICAgICAJb3V0CTB4M2YsIHIwCTsgNjMKICBhNjoJY2QgYmYgICAgICAg CW91dAkweDNkLCByMjgJOyA2MQogIGE4OgljZiA5MSAgICAgICAJcG9wCXIy OAogIGFhOglkZiA5MSAgICAgICAJcG9wCXIyOQogIGFjOgkxZiA5MSAgICAg ICAJcG9wCXIxNwogIGFlOgkwZiA5MSAgICAgICAJcG9wCXIxNgogIGIwOglm ZiA5MCAgICAgICAJcG9wCXIxNQogIGIyOgllZiA5MCAgICAgICAJcG9wCXIx NAogIGI0OglkZiA5MCAgICAgICAJcG9wCXIxMwogIGI2OgljZiA5MCAgICAg ICAJcG9wCXIxMgogIGI4OgliZiA5MCAgICAgICAJcG9wCXIxMQogIGJhOglh ZiA5MCAgICAgICAJcG9wCXIxMAogIGJjOgk5ZiA5MCAgICAgICAJcG9wCXI5 CiAgYmU6CThmIDkwICAgICAgIAlwb3AJcjgKICBjMDoJN2YgOTAgICAgICAg CXBvcAlyNwogIGMyOgk2ZiA5MCAgICAgICAJcG9wCXI2CiAgYzQ6CTVmIDkw ICAgICAgIAlwb3AJcjUKICBjNjoJNGYgOTAgICAgICAgCXBvcAlyNAogIGM4 OgkzZiA5MCAgICAgICAJcG9wCXIzCiAgY2E6CTJmIDkwICAgICAgIAlwb3AJ cjIKICBjYzoJMDggOTUgICAgICAgCXJldAoKMDAwMDAwY2UgPG1haW4+Ogog IGNlOglkZiA5MyAgICAgICAJcHVzaAlyMjkKICBkMDoJY2YgOTMgICAgICAg CXB1c2gJcjI4CiAgZDI6CWNkIGI3ICAgICAgIAlpbglyMjgsIDB4M2QJOyA2 MQogIGQ0OglkZSBiNyAgICAgICAJaW4JcjI5LCAweDNlCTsgNjIKICBkNjoJ OTQgZGYgICAgICAgCXJjYWxsCS4tMjE2ICAgIAk7IDB4MCA8Zm9vPgogIGQ4 OgljZiA5MSAgICAgICAJcG9wCXIyOAogIGRhOglkZiA5MSAgICAgICAJcG9w CXIyOQogIGRjOgkwOCA5NSAgICAgICAJcmV0Cg== --0016364c757ef090d7049c7c25cd--