From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 26677 invoked by alias); 1 Oct 2003 14:43:33 -0000 Mailing-List: contact gdb-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sources.redhat.com Received: (qmail 26633 invoked from network); 1 Oct 2003 14:43:31 -0000 Received: from unknown (HELO artax.karlin.mff.cuni.cz) (195.113.31.125) by sources.redhat.com with SMTP; 1 Oct 2003 14:43:31 -0000 Received: by artax.karlin.mff.cuni.cz (Postfix, from userid 29129) id F14073FAC; Wed, 1 Oct 2003 16:43:30 +0200 (CEST) Date: Wed, 01 Oct 2003 14:43:00 -0000 From: Josef Zlomek To: gdb@sources.redhat.com Subject: Problem with location lists and variables on stack Message-ID: <20031001144330.GA11707@artax.karlin.mff.cuni.cz> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="VS++wcV0S1rZb1Fb" Content-Disposition: inline User-Agent: Mutt/1.5.4i X-SW-Source: 2003-10/txt/msg00021.txt.bz2 --VS++wcV0S1rZb1Fb Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-length: 2600 Hello, I writing a better pass (variable tracking) for GCC which finally emits location lists for variables. (If you are insterested it is at http://artax.karlin.mff.cuni.cz/~zlomj9am/download/vt-main.patch It still contains many debugging checks and (disabled) prints.) Let the local variables and (some) arguments be addressed using stack pointer, for example x86-64 architecture with variables addressed using %rsp. The address emitted for variables located on stack by my new patch is always DW_OP_fbreg + constant. When I was testing the emitted debug info with mainline GDB I found that GDB probably does not adjust addresses of variables when stack pointer changes (like because of "pushq" instruction) if using location lists. I think GDB should adjust the address of %rsp addressed variables according to change of %rsp (probably DWARF2 sais so for DW_OP_fbreg). I think it is a better solution than emitting new locations to location list for all variables located on stack after each "push" and "pop" which would cause too large debug info. When I looked to gdb/dwarf2loc.c I see there: /* FIXME: cagney/2003-03-26: This code should be using get_frame_base_address(), and then implement a dwarf2 specific this_base method. */ Probably this is related to my problem. I tested it on attached C file, assembler with debug info and x86-64 binary is attached too. GDB's output: # g is the first argument on stack, the first 6 arguments are in registers Breakpoint 1, func1 (a=10, b=20, c=30, d=40, e=50, f=60, g=70, seq=0) at m.c:5 5 { 2: x/i $pc 0x400400 : push %r12 1: g = 70 (gdb) ni 0x0000000000400402 5 { 2: x/i $pc 0x400402 : mov %rcx,%r12 # here it looks GDB did not recompute address 1: g = 4195497 (gdb) 0x0000000000400405 5 { 2: x/i $pc 0x400405 : mov %r8,%rcx 1: g = 4195497 (gdb) 0x0000000000400408 5 { 2: x/i $pc 0x400408 : mov %rdx,%r10 1: g = 4195497 (gdb) 0x000000000040040b 5 { 2: x/i $pc 0x40040b : push %rbp 1: g = 4195497 (gdb) 0x000000000040040c 5 { 2: x/i $pc 0x40040c : mov %rdi,%rbp 1: g = 4195520 (gdb) 0x000000000040040f 5 { 2: x/i $pc 0x40040f : push %rbx 1: g = 4195520 (gdb) 0x0000000000400410 5 { 2: x/i $pc 0x400410 : mov 0x20(%rsp,1),%r8 1: g = 548682067112 # here g was loaded from stack to %r8 (gdb) 0x0000000000400415 5 { 2: x/i $pc 0x400415 : mov %rsi,%rbx 1: g = 70 (gdb) Josef --VS++wcV0S1rZb1Fb Content-Type: text/x-csrc; charset=us-ascii Content-Disposition: attachment; filename="m.c" Content-length: 296 long volatile vol; long func1 (long a, long b, long c, long d, long e, long f, long g, int seq) { vol = a + b + c + d + e + f + g; if (seq == 3) return vol; return func1 (g, f, e, d, c, b, a, seq + 1); } int main () { vol = func1 (10, 20, 30, 40, 50, 60, 70, 0); return (int) vol; } --VS++wcV0S1rZb1Fb Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="m.s" Content-length: 18353 .file "m.c" .section .debug_abbrev,"",@progbits .Ldebug_abbrev0: .section .debug_info,"",@progbits .Ldebug_info0: .section .debug_line,"",@progbits .Ldebug_line0: .text .Ltext0: .p2align 4,,15 .globl func1 .type func1, @function func1: .LFB2: # m.c:5 .file 1 "m.c" .loc 1 5 0 .LVL0: # basic block 0 pushq %r12 .LCFI0: movq %rcx, %r12 .LVL1: movq %r8, %rcx .LVL2: movq %rdx, %r10 .LVL3: pushq %rbp .LCFI1: movq %rdi, %rbp .LVL4: pushq %rbx .LCFI2: movq 32(%rsp), %r8 .LVL5: movq %rsi, %rbx .LVL6: movl 40(%rsp), %r11d .LVL7: jmp .L3 .p2align 4,,7 .L6: # basic block 1 # m.c:11 .loc 1 11 0 movq %r10, %rdx .LVL8: movq %rbx, %rsi .LVL9: movq %rbp, %rdi .LVL10: movq %r9, %rbx .LVL11: movq %r8, %rbp .LVL12: movq %rcx, %r10 .LVL13: movq %rsi, %r9 .LVL14: movq %rdx, %rcx .LVL15: movq %rdi, %r8 incl %r11d .L3: # basic block 2 # m.c:6 .loc 1 6 0 leaq (%rbp,%rbx), %rax addq %r10, %rax addq %r12, %rax addq %rcx, %rax addq %r9, %rax addq %r8, %rax # m.c:8 .loc 1 8 0 cmpl $3, %r11d # m.c:6 .loc 1 6 0 movq %rax, vol(%rip) # m.c:8 .loc 1 8 0 jne .L6 # basic block 3 # m.c:12 .loc 1 12 0 popq %rbx .LVL16: popq %rbp .LVL17: popq %r12 .LVL18: # m.c:9 .loc 1 9 0 movq vol(%rip), %rax # m.c:12 .loc 1 12 0 ret .LFE2: .size func1, .-func1 .p2align 4,,15 .globl main .type main, @function main: .LFB3: # m.c:16 .loc 1 16 0 # basic block 0 subq $16, %rsp .LCFI3: # m.c:17 .loc 1 17 0 movl $60, %r9d movl $50, %r8d movl $40, %ecx movl $30, %edx movl $20, %esi movl $10, %edi movl $0, 8(%rsp) movq $70, (%rsp) call func1 movq %rax, vol(%rip) # m.c:18 .loc 1 18 0 movq vol(%rip), %rax # m.c:19 .loc 1 19 0 addq $16, %rsp ret .LFE3: .size main, .-main .comm vol,8,8 #APP .section .debug_frame,"",@progbits .Lframe0: .long .LECIE0-.LSCIE0 # Length of Common Information Entry .LSCIE0: .long 0xffffffff # CIE Identifier Tag .byte 0x1 # CIE Version .ascii "\0" # CIE Augmentation .uleb128 0x1 # CIE Code Alignment Factor .sleb128 -8 # CIE Data Alignment Factor .byte 0x10 # CIE RA Column .byte 0xc # DW_CFA_def_cfa .uleb128 0x7 .uleb128 0x8 .byte 0x90 # DW_CFA_offset, column 0x10 .uleb128 0x1 .align 8 .LECIE0: .LSFDE0: .long .LEFDE0-.LASFDE0 # FDE Length .LASFDE0: .long .Lframe0 # FDE CIE offset .quad .LFB2 # FDE initial location .quad .LFE2-.LFB2 # FDE address range .byte 0x4 # DW_CFA_advance_loc4 .long .LCFI0-.LFB2 .byte 0xe # DW_CFA_def_cfa_offset .uleb128 0x10 .byte 0x8c # DW_CFA_offset, column 0xc .uleb128 0x2 .byte 0x4 # DW_CFA_advance_loc4 .long .LCFI1-.LCFI0 .byte 0xe # DW_CFA_def_cfa_offset .uleb128 0x18 .byte 0x86 # DW_CFA_offset, column 0x6 .uleb128 0x3 .byte 0x4 # DW_CFA_advance_loc4 .long .LCFI2-.LCFI1 .byte 0xe # DW_CFA_def_cfa_offset .uleb128 0x20 .byte 0x83 # DW_CFA_offset, column 0x3 .uleb128 0x4 .align 8 .LEFDE0: .LSFDE2: .long .LEFDE2-.LASFDE2 # FDE Length .LASFDE2: .long .Lframe0 # FDE CIE offset .quad .LFB3 # FDE initial location .quad .LFE3-.LFB3 # FDE address range .byte 0x4 # DW_CFA_advance_loc4 .long .LCFI3-.LFB3 .byte 0xe # DW_CFA_def_cfa_offset .uleb128 0x18 .align 8 .LEFDE2: #NO_APP #APP .section .eh_frame,"a",@progbits .Lframe1: .long .LECIE1-.LSCIE1 # Length of Common Information Entry .LSCIE1: .long 0x0 # CIE Identifier Tag .byte 0x1 # CIE Version .ascii "\0" # CIE Augmentation .uleb128 0x1 # CIE Code Alignment Factor .sleb128 -8 # CIE Data Alignment Factor .byte 0x10 # CIE RA Column .byte 0xc # DW_CFA_def_cfa .uleb128 0x7 .uleb128 0x8 .byte 0x90 # DW_CFA_offset, column 0x10 .uleb128 0x1 .align 8 .LECIE1: .LSFDE1: .long .LEFDE1-.LASFDE1 # FDE Length .LASFDE1: .long .LASFDE1-.Lframe1 # FDE CIE offset .quad .LFB2 # FDE initial location .quad .LFE2-.LFB2 # FDE address range .byte 0x4 # DW_CFA_advance_loc4 .long .LCFI0-.LFB2 .byte 0xe # DW_CFA_def_cfa_offset .uleb128 0x10 .byte 0x8c # DW_CFA_offset, column 0xc .uleb128 0x2 .byte 0x4 # DW_CFA_advance_loc4 .long .LCFI1-.LCFI0 .byte 0xe # DW_CFA_def_cfa_offset .uleb128 0x18 .byte 0x86 # DW_CFA_offset, column 0x6 .uleb128 0x3 .byte 0x4 # DW_CFA_advance_loc4 .long .LCFI2-.LCFI1 .byte 0xe # DW_CFA_def_cfa_offset .uleb128 0x20 .byte 0x83 # DW_CFA_offset, column 0x3 .uleb128 0x4 .align 8 .LEFDE1: .LSFDE3: .long .LEFDE3-.LASFDE3 # FDE Length .LASFDE3: .long .LASFDE3-.Lframe1 # FDE CIE offset .quad .LFB3 # FDE initial location .quad .LFE3-.LFB3 # FDE address range .byte 0x4 # DW_CFA_advance_loc4 .long .LCFI3-.LFB3 .byte 0xe # DW_CFA_def_cfa_offset .uleb128 0x18 .align 8 .LEFDE3: #NO_APP .text .Letext0: .section .debug_loc,"",@progbits .Ldebug_loc0: .LLST0: .quad .LVL0-.text # Location list begin address (*.LLST0) .quad .LVL4-.text # Location list end address (*.LLST0) .value 0x1 # Location expression size .byte 0x55 # DW_OP_reg5 .quad .LVL4-.text # Location list begin address (*.LLST0) .quad .LVL10-.text # Location list end address (*.LLST0) .value 0x1 # Location expression size .byte 0x56 # DW_OP_reg6 .quad .LVL10-.text # Location list begin address (*.LLST0) .quad .LVL12-.text # Location list end address (*.LLST0) .value 0x1 # Location expression size .byte 0x55 # DW_OP_reg5 .quad .LVL12-.text # Location list begin address (*.LLST0) .quad .LVL15-.text # Location list end address (*.LLST0) .value 0x1 # Location expression size .byte 0x56 # DW_OP_reg6 .quad .LVL15-.text # Location list begin address (*.LLST0) .quad .LFE2-.text # Location list end address (*.LLST0) .value 0x1 # Location expression size .byte 0x55 # DW_OP_reg5 .quad 0x0 # Location list terminator begin (*.LLST0) .quad 0x0 # Location list terminator end (*.LLST0) .LLST1: .quad .LVL0-.text # Location list begin address (*.LLST1) .quad .LVL6-.text # Location list end address (*.LLST1) .value 0x1 # Location expression size .byte 0x54 # DW_OP_reg4 .quad .LVL6-.text # Location list begin address (*.LLST1) .quad .LVL9-.text # Location list end address (*.LLST1) .value 0x1 # Location expression size .byte 0x53 # DW_OP_reg3 .quad .LVL9-.text # Location list begin address (*.LLST1) .quad .LVL11-.text # Location list end address (*.LLST1) .value 0x1 # Location expression size .byte 0x54 # DW_OP_reg4 .quad .LVL11-.text # Location list begin address (*.LLST1) .quad .LVL13-.text # Location list end address (*.LLST1) .value 0x1 # Location expression size .byte 0x53 # DW_OP_reg3 .quad .LVL13-.text # Location list begin address (*.LLST1) .quad .LFE2-.text # Location list end address (*.LLST1) .value 0x1 # Location expression size .byte 0x54 # DW_OP_reg4 .quad 0x0 # Location list terminator begin (*.LLST1) .quad 0x0 # Location list terminator end (*.LLST1) .LLST2: .quad .LVL0-.text # Location list begin address (*.LLST2) .quad .LVL3-.text # Location list end address (*.LLST2) .value 0x1 # Location expression size .byte 0x51 # DW_OP_reg1 .quad .LVL3-.text # Location list begin address (*.LLST2) .quad .LVL8-.text # Location list end address (*.LLST2) .value 0x1 # Location expression size .byte 0x5a # DW_OP_reg10 .quad .LVL8-.text # Location list begin address (*.LLST2) .quad .LVL13-.text # Location list end address (*.LLST2) .value 0x1 # Location expression size .byte 0x51 # DW_OP_reg1 .quad .LVL13-.text # Location list begin address (*.LLST2) .quad .LVL14-.text # Location list end address (*.LLST2) .value 0x1 # Location expression size .byte 0x5a # DW_OP_reg10 .quad .LVL14-.text # Location list begin address (*.LLST2) .quad .LFE2-.text # Location list end address (*.LLST2) .value 0x1 # Location expression size .byte 0x51 # DW_OP_reg1 .quad 0x0 # Location list terminator begin (*.LLST2) .quad 0x0 # Location list terminator end (*.LLST2) .LLST3: .quad .LVL0-.text # Location list begin address (*.LLST3) .quad .LVL1-.text # Location list end address (*.LLST3) .value 0x1 # Location expression size .byte 0x52 # DW_OP_reg2 .quad .LVL1-.text # Location list begin address (*.LLST3) .quad .LVL18-.text # Location list end address (*.LLST3) .value 0x1 # Location expression size .byte 0x5c # DW_OP_reg12 .quad 0x0 # Location list terminator begin (*.LLST3) .quad 0x0 # Location list terminator end (*.LLST3) .LLST4: .quad .LVL0-.text # Location list begin address (*.LLST4) .quad .LVL2-.text # Location list end address (*.LLST4) .value 0x1 # Location expression size .byte 0x58 # DW_OP_reg8 .quad .LVL2-.text # Location list begin address (*.LLST4) .quad .LFE2-.text # Location list end address (*.LLST4) .value 0x1 # Location expression size .byte 0x52 # DW_OP_reg2 .quad 0x0 # Location list terminator begin (*.LLST4) .quad 0x0 # Location list terminator end (*.LLST4) .LLST5: .quad .LVL0-.text # Location list begin address (*.LLST5) .quad .LVL5-.text # Location list end address (*.LLST5) .value 0x2 # Location expression size .byte 0x91 # DW_OP_fbreg .sleb128 8 .quad .LVL5-.text # Location list begin address (*.LLST5) .quad .LFE2-.text # Location list end address (*.LLST5) .value 0x1 # Location expression size .byte 0x58 # DW_OP_reg8 .quad 0x0 # Location list terminator begin (*.LLST5) .quad 0x0 # Location list terminator end (*.LLST5) .LLST6: .quad .LVL0-.text # Location list begin address (*.LLST6) .quad .LVL7-.text # Location list end address (*.LLST6) .value 0x2 # Location expression size .byte 0x91 # DW_OP_fbreg .sleb128 16 .quad .LVL7-.text # Location list begin address (*.LLST6) .quad .LFE2-.text # Location list end address (*.LLST6) .value 0x1 # Location expression size .byte 0x5b # DW_OP_reg11 .quad 0x0 # Location list terminator begin (*.LLST6) .quad 0x0 # Location list terminator end (*.LLST6) .section .debug_info .long 0xfd # Length of Compilation Unit Info .value 0x2 # DWARF version number .long .Ldebug_abbrev0 # Offset Into Abbrev. Section .byte 0x8 # Pointer Size (in bytes) .uleb128 0x1 # (DIE (0xb) DW_TAG_compile_unit) .long .Ldebug_line0 # DW_AT_stmt_list .quad .Letext0 # DW_AT_high_pc .quad .Ltext0 # DW_AT_low_pc .long .LASF1 # DW_AT_producer: "GNU C 3.4 20030924 (experimental)" .byte 0x1 # DW_AT_language .ascii "m.c\0" # DW_AT_name .long .LASF2 # DW_AT_comp_dir: "/abuild2/zlomekj/vt" .uleb128 0x2 # (DIE (0x2d) DW_TAG_subprogram) .long 0xb9 # DW_AT_sibling .byte 0x1 # DW_AT_external .long .LASF3 # DW_AT_name: "func1" .byte 0x1 # DW_AT_decl_file .byte 0x5 # DW_AT_decl_line .byte 0x1 # DW_AT_prototyped .long 0xb9 # DW_AT_type .quad .LFB2 # DW_AT_low_pc .quad .LFE2 # DW_AT_high_pc .byte 0x1 # DW_AT_frame_base .byte 0x57 # DW_OP_reg7 .uleb128 0x3 # (DIE (0x50) DW_TAG_formal_parameter) .ascii "a\0" # DW_AT_name .byte 0x1 # DW_AT_decl_file .byte 0x4 # DW_AT_decl_line .long 0xb9 # DW_AT_type .long .LLST0 # DW_AT_location .uleb128 0x3 # (DIE (0x5d) DW_TAG_formal_parameter) .ascii "b\0" # DW_AT_name .byte 0x1 # DW_AT_decl_file .byte 0x4 # DW_AT_decl_line .long 0xb9 # DW_AT_type .long .LLST1 # DW_AT_location .uleb128 0x3 # (DIE (0x6a) DW_TAG_formal_parameter) .ascii "c\0" # DW_AT_name .byte 0x1 # DW_AT_decl_file .byte 0x4 # DW_AT_decl_line .long 0xb9 # DW_AT_type .long .LLST2 # DW_AT_location .uleb128 0x3 # (DIE (0x77) DW_TAG_formal_parameter) .ascii "d\0" # DW_AT_name .byte 0x1 # DW_AT_decl_file .byte 0x4 # DW_AT_decl_line .long 0xb9 # DW_AT_type .long .LLST3 # DW_AT_location .uleb128 0x3 # (DIE (0x84) DW_TAG_formal_parameter) .ascii "e\0" # DW_AT_name .byte 0x1 # DW_AT_decl_file .byte 0x4 # DW_AT_decl_line .long 0xb9 # DW_AT_type .long .LLST4 # DW_AT_location .uleb128 0x4 # (DIE (0x91) DW_TAG_formal_parameter) .ascii "f\0" # DW_AT_name .byte 0x1 # DW_AT_decl_file .byte 0x4 # DW_AT_decl_line .long 0xb9 # DW_AT_type .byte 0x1 # DW_AT_location .byte 0x59 # DW_OP_reg9 .uleb128 0x3 # (DIE (0x9c) DW_TAG_formal_parameter) .ascii "g\0" # DW_AT_name .byte 0x1 # DW_AT_decl_file .byte 0x4 # DW_AT_decl_line .long 0xb9 # DW_AT_type .long .LLST5 # DW_AT_location .uleb128 0x3 # (DIE (0xa9) DW_TAG_formal_parameter) .ascii "seq\0" # DW_AT_name .byte 0x1 # DW_AT_decl_file .byte 0x4 # DW_AT_decl_line .long 0xc0 # DW_AT_type .long .LLST6 # DW_AT_location .byte 0x0 # end of children of DIE 0x2d .uleb128 0x5 # (DIE (0xb9) DW_TAG_base_type) .long .LASF0 # DW_AT_name: "long int" .byte 0x8 # DW_AT_byte_size .byte 0x5 # DW_AT_encoding .uleb128 0x6 # (DIE (0xc0) DW_TAG_base_type) .ascii "int\0" # DW_AT_name .byte 0x4 # DW_AT_byte_size .byte 0x5 # DW_AT_encoding .uleb128 0x7 # (DIE (0xc7) DW_TAG_subprogram) .byte 0x1 # DW_AT_external .long .LASF4 # DW_AT_name: "main" .byte 0x1 # DW_AT_decl_file .byte 0x10 # DW_AT_decl_line .long 0xc0 # DW_AT_type .quad .LFB3 # DW_AT_low_pc .quad .LFE3 # DW_AT_high_pc .byte 0x1 # DW_AT_frame_base .byte 0x57 # DW_OP_reg7 .uleb128 0x8 # (DIE (0xe5) DW_TAG_variable) .ascii "vol\0" # DW_AT_name .byte 0x1 # DW_AT_decl_file .byte 0x1 # DW_AT_decl_line .long 0xfb # DW_AT_type .byte 0x1 # DW_AT_external .byte 0x9 # DW_AT_location .byte 0x3 # DW_OP_addr .quad vol .uleb128 0x9 # (DIE (0xfb) DW_TAG_volatile_type) .long 0xb9 # DW_AT_type .byte 0x0 # end of children of DIE 0xb .section .debug_abbrev .uleb128 0x1 # (abbrev code) .uleb128 0x11 # (TAG: DW_TAG_compile_unit) .byte 0x1 # DW_children_yes .uleb128 0x10 # (DW_AT_stmt_list) .uleb128 0x6 # (DW_FORM_data4) .uleb128 0x12 # (DW_AT_high_pc) .uleb128 0x1 # (DW_FORM_addr) .uleb128 0x11 # (DW_AT_low_pc) .uleb128 0x1 # (DW_FORM_addr) .uleb128 0x25 # (DW_AT_producer) .uleb128 0xe # (DW_FORM_strp) .uleb128 0x13 # (DW_AT_language) .uleb128 0xb # (DW_FORM_data1) .uleb128 0x3 # (DW_AT_name) .uleb128 0x8 # (DW_FORM_string) .uleb128 0x1b # (DW_AT_comp_dir) .uleb128 0xe # (DW_FORM_strp) .byte 0x0 .byte 0x0 .uleb128 0x2 # (abbrev code) .uleb128 0x2e # (TAG: DW_TAG_subprogram) .byte 0x1 # DW_children_yes .uleb128 0x1 # (DW_AT_sibling) .uleb128 0x13 # (DW_FORM_ref4) .uleb128 0x3f # (DW_AT_external) .uleb128 0xc # (DW_FORM_flag) .uleb128 0x3 # (DW_AT_name) .uleb128 0xe # (DW_FORM_strp) .uleb128 0x3a # (DW_AT_decl_file) .uleb128 0xb # (DW_FORM_data1) .uleb128 0x3b # (DW_AT_decl_line) .uleb128 0xb # (DW_FORM_data1) .uleb128 0x27 # (DW_AT_prototyped) .uleb128 0xc # (DW_FORM_flag) .uleb128 0x49 # (DW_AT_type) .uleb128 0x13 # (DW_FORM_ref4) .uleb128 0x11 # (DW_AT_low_pc) .uleb128 0x1 # (DW_FORM_addr) .uleb128 0x12 # (DW_AT_high_pc) .uleb128 0x1 # (DW_FORM_addr) .uleb128 0x40 # (DW_AT_frame_base) .uleb128 0xa # (DW_FORM_block1) .byte 0x0 .byte 0x0 .uleb128 0x3 # (abbrev code) .uleb128 0x5 # (TAG: DW_TAG_formal_parameter) .byte 0x0 # DW_children_no .uleb128 0x3 # (DW_AT_name) .uleb128 0x8 # (DW_FORM_string) .uleb128 0x3a # (DW_AT_decl_file) .uleb128 0xb # (DW_FORM_data1) .uleb128 0x3b # (DW_AT_decl_line) .uleb128 0xb # (DW_FORM_data1) .uleb128 0x49 # (DW_AT_type) .uleb128 0x13 # (DW_FORM_ref4) .uleb128 0x2 # (DW_AT_location) .uleb128 0x6 # (DW_FORM_data4) .byte 0x0 .byte 0x0 .uleb128 0x4 # (abbrev code) .uleb128 0x5 # (TAG: DW_TAG_formal_parameter) .byte 0x0 # DW_children_no .uleb128 0x3 # (DW_AT_name) .uleb128 0x8 # (DW_FORM_string) .uleb128 0x3a # (DW_AT_decl_file) .uleb128 0xb # (DW_FORM_data1) .uleb128 0x3b # (DW_AT_decl_line) .uleb128 0xb # (DW_FORM_data1) .uleb128 0x49 # (DW_AT_type) .uleb128 0x13 # (DW_FORM_ref4) .uleb128 0x2 # (DW_AT_location) .uleb128 0xa # (DW_FORM_block1) .byte 0x0 .byte 0x0 .uleb128 0x5 # (abbrev code) .uleb128 0x24 # (TAG: DW_TAG_base_type) .byte 0x0 # DW_children_no .uleb128 0x3 # (DW_AT_name) .uleb128 0xe # (DW_FORM_strp) .uleb128 0xb # (DW_AT_byte_size) .uleb128 0xb # (DW_FORM_data1) .uleb128 0x3e # (DW_AT_encoding) .uleb128 0xb # (DW_FORM_data1) .byte 0x0 .byte 0x0 .uleb128 0x6 # (abbrev code) .uleb128 0x24 # (TAG: DW_TAG_base_type) .byte 0x0 # DW_children_no .uleb128 0x3 # (DW_AT_name) .uleb128 0x8 # (DW_FORM_string) .uleb128 0xb # (DW_AT_byte_size) .uleb128 0xb # (DW_FORM_data1) .uleb128 0x3e # (DW_AT_encoding) .uleb128 0xb # (DW_FORM_data1) .byte 0x0 .byte 0x0 .uleb128 0x7 # (abbrev code) .uleb128 0x2e # (TAG: DW_TAG_subprogram) .byte 0x0 # DW_children_no .uleb128 0x3f # (DW_AT_external) .uleb128 0xc # (DW_FORM_flag) .uleb128 0x3 # (DW_AT_name) .uleb128 0xe # (DW_FORM_strp) .uleb128 0x3a # (DW_AT_decl_file) .uleb128 0xb # (DW_FORM_data1) .uleb128 0x3b # (DW_AT_decl_line) .uleb128 0xb # (DW_FORM_data1) .uleb128 0x49 # (DW_AT_type) .uleb128 0x13 # (DW_FORM_ref4) .uleb128 0x11 # (DW_AT_low_pc) .uleb128 0x1 # (DW_FORM_addr) .uleb128 0x12 # (DW_AT_high_pc) .uleb128 0x1 # (DW_FORM_addr) .uleb128 0x40 # (DW_AT_frame_base) .uleb128 0xa # (DW_FORM_block1) .byte 0x0 .byte 0x0 .uleb128 0x8 # (abbrev code) .uleb128 0x34 # (TAG: DW_TAG_variable) .byte 0x0 # DW_children_no .uleb128 0x3 # (DW_AT_name) .uleb128 0x8 # (DW_FORM_string) .uleb128 0x3a # (DW_AT_decl_file) .uleb128 0xb # (DW_FORM_data1) .uleb128 0x3b # (DW_AT_decl_line) .uleb128 0xb # (DW_FORM_data1) .uleb128 0x49 # (DW_AT_type) .uleb128 0x13 # (DW_FORM_ref4) .uleb128 0x3f # (DW_AT_external) .uleb128 0xc # (DW_FORM_flag) .uleb128 0x2 # (DW_AT_location) .uleb128 0xa # (DW_FORM_block1) .byte 0x0 .byte 0x0 .uleb128 0x9 # (abbrev code) .uleb128 0x35 # (TAG: DW_TAG_volatile_type) .byte 0x0 # DW_children_no .uleb128 0x49 # (DW_AT_type) .uleb128 0x13 # (DW_FORM_ref4) .byte 0x0 .byte 0x0 .byte 0x0 .section .debug_pubnames,"",@progbits .long 0x29 # Length of Public Names Info .value 0x2 # DWARF Version .long .Ldebug_info0 # Offset of Compilation Unit Info .long 0x101 # Compilation Unit Length .long 0x2d # DIE offset .ascii "func1\0" # external name .long 0xc7 # DIE offset .ascii "main\0" # external name .long 0xe5 # DIE offset .ascii "vol\0" # external name .long 0x0 .section .debug_aranges,"",@progbits .long 0x2c # Length of Address Ranges Info .value 0x2 # DWARF Version .long .Ldebug_info0 # Offset of Compilation Unit Info .byte 0x8 # Size of Address .byte 0x0 # Size of Segment Descriptor .value 0x0 # Pad to 16 byte boundary .value 0x0 .quad .Ltext0 # Address .quad .Letext0-.Ltext0 # Length .quad 0x0 .quad 0x0 .section .debug_str,"MS",@progbits,1 .LASF4: .string "main" .LASF3: .string "func1" .LASF1: .string "GNU C 3.4 20030924 (experimental)" .LASF2: .string "/abuild2/zlomekj/vt" .LASF0: .string "long int" .section .note.GNU-stack,"",@progbits .ident "GCC: (GNU) 3.4 20030924 (experimental)" --VS++wcV0S1rZb1Fb Content-Type: application/octet-stream Content-Disposition: attachment; filename="a.out" Content-Transfer-Encoding: base64 Content-length: 20379 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 AAAAAAAAAAADAAAAAAAAADgIUAAAAAAAAgAAAAAAAAAYAAAAAAAAABQAAAAA AAAABwAAAAAAAAAXAAAAAAAAAOgCQAAAAAAABwAAAAAAAADQAkAAAAAAAAgA AAAAAAAAGAAAAAAAAAAJAAAAAAAAABgAAAAAAAAA/v//bwAAAACwAkAAAAAA AP///28AAAAAAQAAAAAAAADw//9vAAAAAKgCQAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//////// //8AAAAAAAAAAP//////////AAAAAAAAAAAAAAAAAAAAAIAGUAAAAAAAAAAA AAAAAAAAAAAAAAAAAC4DQAAAAAAAAAAAAAAAAAAAR0NDOiAoR05VKSAzLjMg MjAwMzAyMjYgKHByZXJlbGVhc2UpIChTdVNFIExpbnV4KQAAR0NDOiAoR05V KSAzLjMgMjAwMzAyMjYgKHByZXJlbGVhc2UpIChTdVNFIExpbnV4KQAAR0ND OiAoR05VKSAzLjQgMjAwMzA5MjQgKGV4cGVyaW1lbnRhbCkAAEdDQzogKEdO VSkgMy40IDIwMDMwOTI0IChleHBlcmltZW50YWwpAABHQ0M6IChHTlUpIDMu MyAyMDAzMDIyNiAocHJlcmVsZWFzZSkgKFN1U0UgTGludXgpAABHQ0M6IChH TlUpIDMuNCAyMDAzMDkyNCAoZXhwZXJpbWVudGFsKQAAR0NDOiAoR05VKSAz LjMgMjAwMzAyMjYgKHByZXJlbGVhc2UpIChTdVNFIExpbnV4KQAAAAAAAAAA AAAAAABMAAAAAgCoCAAACAAAAAAAeAVAAAAAAAAEAAAAAAAAAAADQAAAAAAA DAAAAAAAAABsA0AAAAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwAAAAC AAYJAAAIAAAAAAAABEAAAAAAALwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwA AAACAAcKAAAIAAAAAADABEAAAAAAAHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAA ADwAAAACAEALAAAIAAAAAACBBUAAAAAAAAUAAAAAAAAAEwNAAAAAAAAFAAAA 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 Ogs7BUkTAAAFJAADCAsLPgsAAAYuAQETPwwDDjoLOwsnDBEBEgFACgAABwsB VQYAAAg0AAMOOgs7C0kTAAAJNAADCDoLOwtJEwIKAAAKJgBJEwAACwEBARNJ EwAADCEAAAANFQAnDAAADg8ACwtJEwAADzQAAw46CzsLSRM/DDwMAAAAAREA EAYDCBsIJQgTBQAAAMcAAAACAMEAAAABAfsOCgABAQEBAAAAAQBpbml0LmMA AAAAL3Vzci9saWI2NC9nY2MtbGliL3g4Nl82NC1zdXNlLWxpbnV4LzMuMy9p bmNsdWRlL3N0ZGRlZi5oAAAAAC4uL3N5c2RlcHMvZ2VuZXJpYy9iaXRzL3R5 cGVzLmgAAAAALi4vd2NzbWJzL3djaGFyLmgAAAAALi4vc3lzZGVwcy9nbnUv X0dfY29uZmlnLmgAAAAALi4vaWNvbnYvZ2NvbnYuaAAAAAAAaQAAAAIAIwAA AAEB+w4KAAEBAQEAAAABAC90bXAvY2NLUjllYjYucwAAAAAAAAkCeAVAAAAA AAADOQECBAABAQAJAgADQAAAAAAAAy0BSAIIAAEBAAkCbANAAAAAAAADHwFI cjosLUgCAgABAT8AAAACABcAAAABAfsOCgABAQEBAAAAAQBtLmMAAAAAAAAJ AgAEQAAAAAAAEwjnCMAIO0VzL0R0Z0gCPBByAgkAAQGKAAAAAgBbAAAAAQH7 DgoAAQEBAQAAAAEAZWxmLWluaXQuYwAAAAAvdXNyL2xpYjY0L2djYy1saWIv eDg2XzY0LXN1c2UtbGludXgvMy4zL2luY2x1ZGUvc3RkZGVmLmgAAAAAAAAJ AsAEQAAAAAAAAysBAxYrA2orAxBHWwhkcIPLUx+ckW4IIAIGAAEBUQAAAAIA IwAAAAEB+w4KAAEBAQEAAAABAC90bXAvY2M3R05GcTcucwAAAAAAAAkCgQVA AAAAAAADJAFIAgEAAQEACQITA0AAAAAAAAMdAUgCAQABAQAAFAAAAP////8B AAF4EAwHCJABAAAAAAAAJAAAAAAAAAAABEAAAAAAAGsAAAAAAAAAQg4QjAJK DhiGA0QOIIMEABwAAAAAAAAAcARAAAAAAABMAAAAAAAAAEQOGAAAAAAAFAAA AP////8BAAF4EAwHCJABAAAAAAAAJAAAAGAAAADABEAAAAAAADoAAAAAAAAA QQ4QQQ4YgwOGAkYOIAAAABwAAABgAAAAAAVAAAAAAAA4AAAAAAAAAEYOEIMC AAAAX0dfaW50MzJfdABfX3RpbWVfdABfX0dDT05WX0lOQ09NUExFVEVfSU5Q VVQAX19HQ09OVl9PSwBfX3N0YXRlAF9fZ2NvbnZfaW5pdF9mY3QAX0dfaWNv bnZfdABfX3JsaW02NF90AF9fR0NPTlZfSUxMRUdBTF9ERVNDUklQVE9SAF9f Z2NvbnZfaW5mbwBzaG9ydCB1bnNpZ25lZCBpbnQAdW5zaWduZWQgY2hhcgBf X3VzZWNvbmRzX3QAX19jb3VudGVyAF9fZmN0AF9fdmFsAF9fdmFsdWUAX19u c3RlcHMAX0dfaW50MTZfdABfX21heF9uZWVkZWRfZnJvbQBfX2djb252X2J0 b3djX2ZjdABfX29mZl90AF9fc3NpemVfdABfX3N0YXRlcABfX2ZzZmlsY250 X3QAX19zdGVwcwBfX2ZzZmlsY250NjRfdABfX2Jsa2NudF90AF9fZ2NvbnZf bG9hZGVkX29iamVjdABfR19mcG9zNjRfdABfX2djb252X3QAX190cmFuc19l bmRfZmN0AF9fdV9pbnQAX19HQ09OVl9JTExFR0FMX0lOUFVUAF9fYmxrc2l6 ZV90AF9fdG9fbmFtZQBfX3VpbnQ2NF90AF9faWRfdABfX0dDT05WX0VNUFRZ X0lOUFVUAF9fY2QAX19pbm9fdABfX0dDT05WX05PQ09OVgBfX2ludm9jYXRp b25fY291bnRlcgBfX3BpZF90AF9fdV9zaG9ydABfX2NvdW50AF9fcXVhZF90 AF9fdV9sb25nAF9fZnNpZF90AF9fR0NPTlZfRlVMTF9PVVRQVVQAX19tYXhf bmVlZGVkX3RvAF9fdGltZXJfdABfX3N0YXRlZnVsAF9fdWludDMyX3QAL3Vz ci9zcmMvcGFja2FnZXMvQlVJTEQvZ2xpYmMtMi4zLjIvY3N1AF9fa2V5X3QA X191X2NoYXIAX19nY29udl9zdGVwAF9fc2hsaWJfaGFuZGxlAF9fbWluX25l ZWRlZF90bwBzaG9ydCBpbnQAX19kZXZfdABsb25nIGxvbmcgaW50AF9fZ2Nv bnZfdHJhbnNfZGF0YQBHTlUgQyAzLjMgMjAwMzAyMjYgKHByZXJlbGVhc2Up IChTdVNFIExpbnV4KQBfX291dGJ1ZgBsb25nIGxvbmcgdW5zaWduZWQgaW50 AF9fdWlkX3QAX193Y2hiAF9fdWludDE2X3QAd2ludF90AF9fdV9xdWFkX3QA X19nY29udl90cmFuc19lbmRfZmN0AF9fZmxhZ3MAX19vdXRidWZlbmQAX19j b21iaW5lZABfX2djb252X3RyYW5zX2luaXRfZmN0AF9faW5pdF9mY3QAX19t b2RuYW1lAF9fdHJhbnNfY29udGV4dF9mY3QAX190cmFuc19mY3QAX19ybGlt X3QAX193Y2gAX19pbnRwdHJfdABfX3N1c2Vjb25kc190AF9faW5vNjRfdAB3 Y2hhcl90AF9fR0NPTlZfSVNfTEFTVABfX2Jsa2NudDY0X3QAX19mc2Jsa2Nu dDY0X3QAX19tb2RlX3QAX19xYWRkcl90AF9fcG9zAF9fZ2NvbnZfZW5kX2Zj dABfSU9fc3RkaW5fdXNlZABfX2ludGVybmFsX3VzZQBfX0dDT05WX05PREIA X19jbG9ja190AF9fZ2NvbnZfc3RlcF9kYXRhAF9fZ2NvbnZfdHJhbnNfcXVl cnlfZmN0AF9fc29ja2xlbl90AF9faW50NjRfdABfX0dDT05WX05PTUVNAF9f b2ZmNjRfdABfX2J0b3djX2ZjdABfR19mcG9zX3QAX19pbnQ4X3QAX19kYWRk cl90AF9fZnNibGtjbnRfdABfR191aW50MzJfdABfX25saW5rX3QAX19zd2Js a190AF9fR0NPTlZfSU5URVJOQUxfRVJST1IAX19tYnN0YXRlX3QAX19naWRf dABfX2Nsb2NraWRfdABfX2ludDMyX3QAX19nY29udl90cmFuc19jb250ZXh0 X2ZjdABfX25leHQAX19HQ09OVl9JR05PUkVfRVJST1JTAF9fZW5kX2ZjdABf X3RyYW5zAF9fdWludDhfdABfX2djb252X2ZjdABfX2Zyb21fbmFtZQBfX21p bl9uZWVkZWRfZnJvbQBfX2djb252X3RyYW5zX2ZjdABfX2RhdGEAX19jYWRk cl90AF9HX3VpbnQxNl90AF9fbG9mZl90AF9faW50MTZfdABtYWluAGZ1bmMx AEdOVSBDIDMuNCAyMDAzMDkyNCAoZXhwZXJpbWVudGFsKQAvYWJ1aWxkMi96 bG9tZWtqL3Z0AF9fbGliY19jc3VfZmluaQBwdHJkaWZmX3QAX19pbml0X2Fy cmF5X2VuZABfX2luaXRfYXJyYXlfc3RhcnQAZWxmLWluaXQuYwBfX2Zpbmlf YXJyYXlfZW5kAF9fbGliY19jc3VfaW5pdABfX2ZpbmlfYXJyYXlfc3RhcnQA c2l6ZQAAAAAAAAAAAA8AAAAAAAAAAQBVDwAAAAAAAAApAAAAAAAAAAEAVikA AAAAAAAALwAAAAAAAAABAFUvAAAAAAAAADgAAAAAAAAAAQBWOAAAAAAAAABr AAAAAAAAAAEAVQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAQBU GAAAAAAAAAAmAAAAAAAAAAEAUyYAAAAAAAAALAAAAAAAAAABAFQsAAAAAAAA ADIAAAAAAAAAAQBTMgAAAAAAAABrAAAAAAAAAAEAVAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAsAAAAAAAAAAQBRCwAAAAAAAAAjAAAAAAAAAAEAWiMAAAAA AAAAMgAAAAAAAAABAFEyAAAAAAAAADUAAAAAAAAAAQBaNQAAAAAAAABrAAAA AAAAAAEAUQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAQBSBQAA AAAAAABjAAAAAAAAAAEAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAA AAAAAQBYCAAAAAAAAABrAAAAAAAAAAEAUgAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAABUAAAAAAAAAAgCRCBUAAAAAAAAAawAAAAAAAAABAFgAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAdAAAAAAAAAAIAkRAdAAAAAAAAAGsAAAAAAAAAAQBb AAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAACAAAAAAAAAASAAAAAAAAADoAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAuc3ltdGFiAC5zdHJ0YWIALnNoc3RydGFi AC5pbnRlcnAALm5vdGUuQUJJLXRhZwAuaGFzaAAuZHluc3ltAC5keW5zdHIA LmdudS52ZXJzaW9uAC5nbnUudmVyc2lvbl9yAC5yZWxhLmR5bgAucmVsYS5w bHQALmluaXQALnRleHQALmZpbmkALnJvZGF0YQAuZWhfZnJhbWVfaGRyAC5k YXRhAC5laF9mcmFtZQAuZHluYW1pYwAuY3RvcnMALmR0b3JzAC5qY3IALmdv dAAuYnNzAC5jb21tZW50AC5kZWJ1Z19hcmFuZ2VzAC5kZWJ1Z19wdWJuYW1l cwAuZGVidWdfaW5mbwAuZGVidWdfYWJicmV2AC5kZWJ1Z19saW5lAC5kZWJ1 Z19mcmFtZQAuZGVidWdfc3RyAC5kZWJ1Z19sb2MALm5vdGUuR05VLXN0YWNr AC5kZWJ1Z19yYW5nZXMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbAAAAAQAAAAIA AAAAAAAAyAFAAAAAAADIAQAAAAAAABwAAAAAAAAAAAAAAAAAAAABAAAAAAAA AAAAAAAAAAAAIwAAAAcAAAACAAAAAAAAAOQBQAAAAAAA5AEAAAAAAAAgAAAA AAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAADEAAAAFAAAAAgAAAAAAAAAI AkAAAAAAAAgCAAAAAAAAIAAAAAAAAAAEAAAAAAAAAAgAAAAAAAAABAAAAAAA AAA3AAAACwAAAAIAAAAAAAAAKAJAAAAAAAAoAgAAAAAAAEgAAAAAAAAABQAA AAEAAAAIAAAAAAAAABgAAAAAAAAAPwAAAAMAAAACAAAAAAAAAHACQAAAAAAA cAIAAAAAAAA4AAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAEcAAAD/ //9vAgAAAAAAAACoAkAAAAAAAKgCAAAAAAAABgAAAAAAAAAEAAAAAAAAAAIA AAAAAAAAAgAAAAAAAABUAAAA/v//bwIAAAAAAAAAsAJAAAAAAACwAgAAAAAA ACAAAAAAAAAABQAAAAEAAAAIAAAAAAAAAAAAAAAAAAAAYwAAAAQAAAACAAAA AAAAANACQAAAAAAA0AIAAAAAAAAYAAAAAAAAAAQAAAAAAAAACAAAAAAAAAAY AAAAAAAAAG0AAAAEAAAAAgAAAAAAAADoAkAAAAAAAOgCAAAAAAAAGAAAAAAA AAAEAAAACwAAAAgAAAAAAAAAGAAAAAAAAAB3AAAAAQAAAAYAAAAAAAAAAANA AAAAAAAAAwAAAAAAABgAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAA cgAAAAEAAAAGAAAAAAAAABgDQAAAAAAAGAMAAAAAAAAgAAAAAAAAAAAAAAAA AAAABAAAAAAAAAAQAAAAAAAAAH0AAAABAAAABgAAAAAAAABAA0AAAAAAAEAD AAAAAAAAOAIAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAACDAAAAAQAA AAYAAAAAAAAAeAVAAAAAAAB4BQAAAAAAAA4AAAAAAAAAAAAAAAAAAAAEAAAA AAAAAAAAAAAAAAAAiQAAAAEAAAACAAAAAAAAAIgFQAAAAAAAiAUAAAAAAAAE AAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAJEAAAABAAAAAgAAAAAA AACMBUAAAAAAAIwFAAAAAAAALAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAA AAAAAACfAAAAAQAAAAMAAAAAAAAAuAVQAAAAAAC4BQAAAAAAABgAAAAAAAAA AAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAApQAAAAEAAAACAAAAAAAAANAFUAAA AAAA0AUAAAAAAACsAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAK8A AAAGAAAAAwAAAAAAAACABlAAAAAAAIAGAAAAAAAAkAEAAAAAAAAFAAAAAAAA AAgAAAAAAAAAEAAAAAAAAAC4AAAAAQAAAAMAAAAAAAAAEAhQAAAAAAAQCAAA AAAAABAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAvwAAAAEAAAAD AAAAAAAAACAIUAAAAAAAIAgAAAAAAAAQAAAAAAAAAAAAAAAAAAAACAAAAAAA AAAAAAAAAAAAAMYAAAABAAAAAwAAAAAAAAAwCFAAAAAAADAIAAAAAAAACAAA AAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAADLAAAAAQAAAAMAAAAAAAAA OAhQAAAAAAA4CAAAAAAAACgAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAgAAAAA AAAA0AAAAAgAAAADAAAAAAAAAGAIUAAAAAAAYAgAAAAAAAAQAAAAAAAAAAAA AAAAAAAACAAAAAAAAAAAAAAAAAAAANUAAAABAAAAAAAAAAAAAAAAAAAAAAAA AGAIAAAAAAAARAEAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAADeAAAA AQAAAAAAAAAAAAAAAAAAAAAAAACwCQAAAAAAAPAAAAAAAAAAAAAAAAAAAAAQ AAAAAAAAAAAAAAAAAAAA7QAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAoAoAAAAA AACMAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAP0AAAABAAAAAAAA AAAAAAAAAAAAAAAAACwLAAAAAAAAngsAAAAAAAAAAAAAAAAAAAEAAAAAAAAA AAAAAAAAAAAJAQAAAQAAAAAAAAAAAAAAAAAAAAAAAADKFgAAAAAAAGYCAAAA AAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAFwEAAAEAAAAAAAAAAAAAAAAA AAAAAAAAMBkAAAAAAABeAgAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAA ACMBAAABAAAAAAAAAAAAAAAAAAAAAAAAAJAbAAAAAAAAwAAAAAAAAAAAAAAA AAAAAAgAAAAAAAAAAAAAAAAAAAAwAQAAAQAAADAAAAAAAAAAAAAAAAAAAABQ HAAAAAAAAGQHAAAAAAAAAAAAAAAAAAABAAAAAAAAAAEAAAAAAAAAOwEAAAEA AAAAAAAAAAAAAAAAAAAAAAAAtCMAAAAAAAAnAgAAAAAAAAAAAAAAAAAAAQAA AAAAAAAAAAAAAAAAAEYBAAAHAAAAAAAAAAAAAAAAAAAAAAAAANslAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAABWAQAAAQAAAAAAAAAA AAAAAAAAAAAAAADbJQAAAAAAADAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAA AAAAAAAAEQAAAAMAAAAAAAAAAAAAAAAAAAAAAAAACyYAAAAAAABkAQAAAAAA AAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAACAAAAAAAAAAAAAAAAAAAA AAAAAPAwAAAAAAAAsAcAAAAAAAAlAAAAOgAAAAgAAAAAAAAAGAAAAAAAAAAJ AAAAAwAAAAAAAAAAAAAAAAAAAAAAAACgOAAAAAAAABkCAAAAAAAAAAAAAAAA AAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAMAAQDIAUAAAAAAAAAAAAAAAAAAAAAAAAMAAgDkAUAAAAAAAAAAAAAAAAAA AAAAAAMAAwAIAkAAAAAAAAAAAAAAAAAAAAAAAAMABAAoAkAAAAAAAAAAAAAA AAAAAAAAAAMABQBwAkAAAAAAAAAAAAAAAAAAAAAAAAMABgCoAkAAAAAAAAAA AAAAAAAAAAAAAAMABwCwAkAAAAAAAAAAAAAAAAAAAAAAAAMACADQAkAAAAAA AAAAAAAAAAAAAAAAAAMACQDoAkAAAAAAAAAAAAAAAAAAAAAAAAMACgAAA0AA AAAAAAAAAAAAAAAAAAAAAAMACwAYA0AAAAAAAAAAAAAAAAAAAAAAAAMADABA A0AAAAAAAAAAAAAAAAAAAAAAAAMADQB4BUAAAAAAAAAAAAAAAAAAAAAAAAMA DgCIBUAAAAAAAAAAAAAAAAAAAAAAAAMADwCMBUAAAAAAAAAAAAAAAAAAAAAA AAMAEAC4BVAAAAAAAAAAAAAAAAAAAAAAAAMAEQDQBVAAAAAAAAAAAAAAAAAA AAAAAAMAEgCABlAAAAAAAAAAAAAAAAAAAAAAAAMAEwAQCFAAAAAAAAAAAAAA AAAAAAAAAAMAFAAgCFAAAAAAAAAAAAAAAAAAAAAAAAMAFQAwCFAAAAAAAAAA AAAAAAAAAAAAAAMAFgA4CFAAAAAAAAAAAAAAAAAAAAAAAAMAFwBgCFAAAAAA AAAAAAAAAAAAAAAAAAMAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAGQAAAAAA AAAAAAAAAAAAAAAAAAAAAAMAGgAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAGwAA AAAAAAAAAAAAAAAAAAAAAAAAAAMAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMA HQAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAHgAAAAAAAAAAAAAAAAAAAAAAAAAA AAMAHwAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAIAAAAAAAAAAAAAAAAAAAAAAA AAAAAAMAIQAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAIgAAAAAAAAAAAAAAAAAA AAAAAAAAAAMAIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAJAAAAAAAAAAAAAAA AAAAAAAAAAAAAAMAJQAAAAAAAAAAAAAAAAAAAAAAAQAAAAQA8f8AAAAAAAAA AAAAAAAAAAAACAAAAAQA8f8AAAAAAAAAAAAAAAAAAAAAEwAAAAIADABsA0AA AAAAAAAAAAAAAAAAIwAAAAQA8f8AAAAAAAAAAAAAAAAAAAAALgAAAAEAEwAQ CFAAAAAAAAAAAAAAAAAAPAAAAAEAFAAgCFAAAAAAAAAAAAAAAAAASgAAAAEA FQAwCFAAAAAAAAAAAAAAAAAAVwAAAAEAEADIBVAAAAAAAAAAAAAAAAAAWwAA AAEAFwBgCFAAAAAAAAEAAAAAAAAAZwAAAAIADACQA0AAAAAAAAAAAAAAAAAA fQAAAAIADADQA0AAAAAAAAAAAAAAAAAAIwAAAAQA8f8AAAAAAAAAAAAAAAAA AAAAiQAAAAEAEwAYCFAAAAAAAAAAAAAAAAAAlgAAAAEAFAAoCFAAAAAAAAAA AAAAAAAAowAAAAEAEQB4BlAAAAAAAAAAAAAAAAAAsQAAAAEAFQAwCFAAAAAA AAAAAAAAAAAAvQAAAAIADABABUAAAAAAAAAAAAAAAAAACAAAAAQA8f8AAAAA AAAAAAAAAAAAAAAA0wAAAAQA8f8AAAAAAAAAAAAAAAAAAAAA1wAAAAQA8f8A AAAAAAAAAAAAAAAAAAAA4gAAABIAAAAoA0AAAAAAAO0AAAAAAAAAAQEAABEA EgCABlAAAAAAAAAAAAAAAAAACgEAABAA8f+4BVAAAAAAAAAAAAAAAAAAGwEA ABECEADABVAAAAAAAAAAAAAAAAAAKAEAABIADAAABUAAAAAAADgAAAAAAAAA OAEAABIACgAAA0AAAAAAAAAAAAAAAAAAPgEAABIADAAABEAAAAAAAGsAAAAA AAAARAEAABIADABAA0AAAAAAAAAAAAAAAAAASwEAABAA8f+4BVAAAAAAAAAA AAAAAAAAXgEAABIADADABEAAAAAAADoAAAAAAAAAbgEAABAA8f9gCFAAAAAA AAAAAAAAAAAAegEAABIADABwBEAAAAAAAEwAAAAAAAAAfwEAABAA8f+4BVAA AAAAAAAAAAAAAAAAkAEAABEAFwBoCFAAAAAAAAgAAAAAAAAAlAEAACAAEAC4 BVAAAAAAAAAAAAAAAAAAnwEAABIADQB4BUAAAAAAAAAAAAAAAAAApQEAABAA 8f9gCFAAAAAAAAAAAAAAAAAArAEAABEAFgA4CFAAAAAAAAAAAAAAAAAAwgEA ABAA8f9wCFAAAAAAAAAAAAAAAAAAxwEAABAA8f+4BVAAAAAAAAAAAAAAAAAA 2gEAABEADgCIBUAAAAAAAAQAAAAAAAAA6QEAABAAEAC4BVAAAAAAAAAAAAAA AAAA9gEAACAAAAAAAAAAAAAAAAAAAAAAAAAACgIAACAAAAAAAAAAAAAAAAAA AAAAAAAAAGluaXQuYwBpbml0ZmluaS5jAGNhbGxfZ21vbl9zdGFydABjcnRz dHVmZi5jAF9fQ1RPUl9MSVNUX18AX19EVE9SX0xJU1RfXwBfX0pDUl9MSVNU X18AcC4wAGNvbXBsZXRlZC4xAF9fZG9fZ2xvYmFsX2R0b3JzX2F1eABmcmFt ZV9kdW1teQBfX0NUT1JfRU5EX18AX19EVE9SX0VORF9fAF9fRlJBTUVfRU5E X18AX19KQ1JfRU5EX18AX19kb19nbG9iYWxfY3RvcnNfYXV4AG0uYwBlbGYt aW5pdC5jAF9fbGliY19zdGFydF9tYWluQEBHTElCQ18yLjIuNQBfRFlOQU1J QwBfX2ZpbmlfYXJyYXlfZW5kAF9fZHNvX2hhbmRsZQBfX2xpYmNfY3N1X2Zp bmkAX2luaXQAZnVuYzEAX3N0YXJ0AF9fZmluaV9hcnJheV9zdGFydABfX2xp YmNfY3N1X2luaXQAX19ic3Nfc3RhcnQAbWFpbgBfX2luaXRfYXJyYXlfZW5k AHZvbABkYXRhX3N0YXJ0AF9maW5pAF9lZGF0YQBfR0xPQkFMX09GRlNFVF9U QUJMRV8AX2VuZABfX2luaXRfYXJyYXlfc3RhcnQAX0lPX3N0ZGluX3VzZWQA X19kYXRhX3N0YXJ0AF9Kdl9SZWdpc3RlckNsYXNzZXMAX19nbW9uX3N0YXJ0 X18A --VS++wcV0S1rZb1Fb--